"第1命令フォーマットによる命令を実行するプロセッサであって、前記第1命令フォーマットによる前記命令を復号化する復号化ユニットを有し、前記第1命令フォーマットは、ベース処理フィールドと拡張処理フィールドとを有し、前記ベース処理フィールドは、異なるデータ要素位置における複数のデータ要素を有するデスティネーションベクトルオペランドを各々が生成する異なるベクトル処理を指定し、前記復号化ユニットは、メモリアクセスを指定する前記命令の各々について、前記ベース処理フィールドのコンテンツに基づき実行すべき前記異なるベクトル処理の1つのベクトル処理と、実行対象の前記ベクトル処理と前記拡張フィールドのコンテンツとの双方に基づき実行すべき複数の異なる拡張処理の1つの拡張処理とを区別するよう構成され、前記ベクトル処理の少なくとも一部のための前記複数の拡張処理は、異なるタイプのブロードキャスト処理と異なるタイプの変換処理とであるプロセッサ。前記異なるベクトル処理の1つのベクトル処理は、前記拡張フィールドのコンテンツが前記異なるタイプのブロードキャスト処理として非変換、1要素粒度ブロードキャスト及び4要素粒度ブロードキャストと、異なるタイプの変換処理としてソースベクトルオペランドのデータ要素のデータタイプの異なるアップ変換とを指定しうるロード/処理である、請求項1記載のプロセッサ。前記異なるベクトル処理の1つのベクトル処理は、前記拡張フィールドのコンテンツが非変換と、前記異なるタイプの変換処理としてソースベクトルオペランドのデータ要素のデータタイプの異なるアップ変換とを指定しうるが、何れのブロードキャスト処理も指定できないロードである、請求項1又は2記載のプロセッサ。前記異なるベクトル処理の1つのベクトル処理は、前記拡張フィールドのコンテンツが非変換と、前記異なるタイプの変換処理として前記デスティネーションベクトルオペランドのデータ要素のデータタイプの異なるダウン変換とを指定しうるストアである、請求項1乃至3何れか一項記載のプロセッサ。前記データタイプは、符号なし整数、符号付き整数、符号なし正規化整数、符号付き正規化整数及び浮動小数点を含む、請求項1乃至4何れか一項記載のプロセッサ。前記異なるベクトル処理の1つのベクトル処理は、前記拡張フィールドのコンテンツが非変換と、前記異なるタイプのブロードキャスト処理として1要素粒度ブロードキャスト及び4要素粒度ブロードキャストとを指定しうるロード/処理である、請求項1乃至5何れか一項記載のプロセッサ。前記第1命令フォーマットはさらに、データ要素幅フィールドを有し、前記第1命令フォーマットは、前記データ要素幅フィールドの異なる値を介し異なるデータ要素幅の指定をサポートする、請求項1乃至6何れか一項記載のプロセッサ。前記第1命令フォーマットは、前記データ要素幅フィールドの異なる値を介し32ビット及び64ビットデータ要素幅の指定をサポートする、請求項7記載のプロセッサ。前記異なるベクトル処理のセットは、前記拡張フィールドのコンテンツが非変換と、前記異なるタイプの変換処理として前記デスティネーションベクトルオペランドのデータ要素のデータタイプの異なるダウン変換及びソースベクトルオペランドのデータ要素のデータタイプの異なるアップ変換とを指定しうるグラフィックメモリアクセスである、請求項1乃至8何れか一項記載のプロセッサ。前記異なるベクトル処理のセットの1つのアップ変換のデータタイプは、1以上のパケットグラフィックデータ要素のデータタイプを含む、請求項1乃至9何れか一項記載のプロセッサ。命令セットを実行するよう構成されるプロセッサを有する装置であって、前記命令セットは、第1命令フォーマットを含み、前記第1命令フォーマットは、ベース処理フィールド、モディファイアフィールド、クラスフィールド、アルファフィールド、ベータフィールド及びデータ要素幅フィールドを含む複数のフィールドを有し、前記第1命令フォーマットは、前記ベース処理フィールド、前記モディファイアフィールド、前記クラスフィールド、前記アルファフィールド、前記ベータフィールド及び前記データ要素幅フィールドに異なる値を配置することによって、異なるバージョンのベース処理と異なる拡張処理とをサポートし、前記異なる値の1つのみが、命令ストリームにおける前記第1命令フォーマットによる命令の各出現に対して、前記ベース処理フィールド、前記モディファイアフィールド、前記クラスフィールド、前記アルファフィールド、前記ベータフィールド及び前記データ要素幅フィールドの各々に配置されてもよく、前記プロセッサは、メモリアクセスを指定する出現と前記メモリアクセスを指定しない出現とを前記異なる出現における前記モディファイアフィールドのコンテンツに基づき区別し、前記モディファイアフィールドのコンテンツがメモリアクセスを指定するとき、前記アルファフィールドと前記ベータフィールドとはそれぞれイビクションヒントフィールドとデータ操作フィールドとして解釈され、前記モディファイアフィールドのコンテンツによりメモリアクセスを指定しない出現の各々について、前記イビクションヒントが前記アルファフィールドのコンテンツと前記出現における前記イビクションヒントフィールドとしてのそれの解釈とに基づき一時的又は非一時的であるか区別し、実行すべき複数のメモリアクセス処理の1つのメモリアクセス処理と、適用すべき複数のデータ操作処理の1つのデータ操作処理とを前記ベース処理フィールドのコンテンツ、前記ベータフィールドのコンテンツ及び前記ベータフィールドの前記データ操作フィールドとしての解釈に基づき区別し、前記モディファイアフィールドのコンテンツによりメモリアクセスを指定しない出現の各々について、ラウンドタイプ処理又はデータ変換タイプ処理により拡張すべきか前記出現の前記アルファフィールドのコンテンツに基づき区別し、前記アルファフィールドのコンテンツが前記ラウンドタイプ処理を示すとき、前記ベータフィールドがラウンド処理フィールドを有するラウンド制御フィールドとして解釈され、前記アルファフィールドのコンテンツが前記データ変換タイプ処理を示すとき、前記ベータフィールドがデータ変換フィールドとして解釈され、前記モディファイアフィールドのコンテンツによりメモリアクセスを指定せず、前記アルファフィールドのコンテンツにより前記ラウンドタイプ処理を指定する出現の各々について、適用すべき複数のラウンド処理の1つのラウンド処理を前記ベータフィールドのコンテンツと前記出現のラウンド処理フィールドとしてのそれの解釈とに基づき区別し、前記モディファイアフィールドのコンテンツによりメモリアクセスを指定せず、前記アルファフィールドのコンテンツにより前記データ変換タイプ処理を指定する出現の各々について、使用すべき複数のデータ要素幅の1つのデータ要素幅と、適用すべき複数の異なるデータ変換処理の1つのデータ変換処理とを、前記データ要素幅フィールドのコンテンツ、前記ベータフィールドのコンテンツ及び前記出現のデータ変換フィールドとしての前記ベータフィールドの解釈とに基づき区別する、第1クラスを指定する前記クラスフィールドのコンテンツにより前記第1命令フォーマットの命令の出現を復号化する復号化ユニットを有する装置。前記複数のデータ操作処理は、非変換と1以上の変換処理のセットとを含み、前記変換処理は、オペランドのデータタイプの異なるデータタイプへの変換を示す、請求項11記載の装置。前記変換処理のセットは、前記デスティネーションベクトルオペランドのデータ要素のデータタイプの異なるダウン変換と、ソースベクトルオペランドのデータ要素のデータタイプの異なるアップ変換とを含む、請求項12記載の装置。前記メモリアクセス処理の1つのメモリアクセス処理は、前記複数のデータ操作が前記非変換、1要素粒度ブロードキャスト、4要素粒度ブロードキャスト及びソースベクトルオペランドのデータ要素のデータタイプの異なるアップ変換を含むロード/処理である、請求項13記載の装置。前記複数のデータ操作処理は、1以上のブロードキャスト処理のセットを含む、請求項12又は13記載の装置。前記複数のデータ操作処理は、非スウィズル処理、スウィズル処理及びブロードキャスト処理を含む、請求項10乃至14何れか一項記載の装置。前記ブロードキャスト処理は、4要素パケットにわたる複数のデータ要素のブロードキャストデータ要素を含む、請求項10乃至16何れか一項記載の装置。前記ラウンド制御フィールドは、SAESuppressAllfloatingpointExceptionフィールドとラウンド処理フィールドとして解釈され、前記SAEフィールドのコンテンツは、符号小数点例外が抑制されるか区別し、前記ラウンドタイプ処理フィールドのコンテンツは、前記出現におけるラウンドタイプ処理フィールドのコンテンツに基づき適用すべき複数のラウンド処理の1つのラウンド処理を区別する、請求項10乃至17何れか一項記載の装置。前記第1命令フォーマットは、前記データ要素幅フィールドの異なる値により32ビット及び64ビットデータ要素幅をサポートする、請求項10乃至18何れか一項記載の装置。命令セットを実行するよう構成されるプロセッサを有する装置であって、前記命令セットは、第1命令フォーマットを有し、前記第1命令フォーマットは、クラスフィールド、アルファフィールド及びベータフィールドを含む複数のフィールドを有し、前記第1命令フォーマットは、前記アルファフィールドと前記ベータフィールドへの異なる値の配置により異なる拡張処理をサポートし、前記異なる値の1つのみが、命令ストリームにおける前記第1命令フォーマットの命令の各出現に対して、前記アルファフィールドと前記ベータフィールドとの各々に配置されてもよく、前記プロセッサは、メモリアクセスを指定しない出現の各々について、前記出現における前記アルファフィールドのコンテンツに基づきラウンドタイプ処理により拡張するか区別し、前記アルファフィールドのコンテンツが前記ラウンドタイプ処理を示すとき、前記ベータフィールドは、SAESuppressAllfloatingpointExceptionフィールドとラウンド処理フィールドとして解釈され、メモリアクセスを指定せず、前記アルファフィールドのコンテンツにより前記ラウンドタイプ処理を指定する出現の各々について、浮動小数点例外が前記出現のSAEフィールドのコンテンツに基づき抑制されるか区別し、メモリアクセスを指定せず、前記アルファフィールドのコンテンツにより前記ラウンドタイプ処理を指定する出現の各々について、前記出現のラウンドタイプ処理フィールドのコンテンツに基づき適用すべき複数のラウンド処理の1つのラウンド処理を区別することによって、第1クラスを指定する前記クラスフィールドのコンテンツにより前記第1命令フォーマットの命令の出現を復号化する復号化ユニットを有する装置。前記複数のラウンド処理は、近傍へのラウンド化、下方ラウンド化、上方ラウンド化及びゼロへのラウンド化を含む、請求項20記載の装置。前記復号化ユニットはまた、前記モディファイアフィールドのコンテンツによりメモリアクセスを指定しない出現の各々について、RLフィールドを含むとして前記ベータフィールドを解釈し、前記モディファイアフィールドのコンテンツによりメモリアクセスを指定しない出現の各々について、前記出現のRLフィールドのコンテンツに基づきラウンドタイプ処理又はベクトル長タイプ処理により拡張するか区別し、前記RLフィールドのコンテンツが前記ラウンドタイプ処理を示すとき、前記ベータフィールドの残りはラウンドタイプフィールドとして解釈され、前記RLフィールドのコンテンツが前記ベクトル長タイプ処理を示すとき、前記ベータフィールドの残りは前記ベクトル長フィールドとして解釈され、前記モディファイアフィールドのコンテンツによりメモリアクセスを指定せず、前記RLフィールドのコンテンツにより前記ラウンドタイプ処理を指定する出現の各々について、前記ベータフィールドのコンテンツと前記出現における前記ラウンド処理フィールドとしてのそれの解釈とに基づき適用すべき前記複数のラウンド処理の1つのラウンド処理を区別することによって、第2クラスを指定する前記クラスフィールドのコンテンツにより前記第1命令フォーマットの前記命令の出現を復号化する、請求項20又は21記載の装置。前記モディファイアフィールドのコンテンツによりメモリアクセスを指定せず、前記RLフィールドのコンテンツにより前記ラウンドタイプ処理を指定する出現の各々について、浮動小数点例外が抑制される、請求項22記載の装置。前記復号化ユニットはまた、前記モディファイアフィールドのコンテンツによりメモリアクセスを指定せず、前記RLフィールドのコンテンツにより前記ベクトル長タイプ処理を指定する前記複数の出現の各々について、前記ベータフィールドのコンテンツと前記出現のベクトル長フィールドとしてのそれの解釈とに基づき使用すべき複数のベクトル長の1つのベクトル長を区別することによって、前記第2クラスを指定する前記クラスフィールドのコンテンツにより前記第1命令フォーマットの前記命令の出現を復号化する、請求項22又は23記載の装置。前記複数のベクトル長は、128、256及び512ビットを含む、請求項24記載の装置。前記第1クラスにより処理されるベクトル長は、512ビットである、請求項20乃至25何れか一項記載の装置。前記第1命令フォーマットはさらに、データ要素幅フィールドを有し、前記第1命令フォーマットは、前記データ要素幅フィールドの異なる値により異なるデータ要素幅の指定をサポートする、請求項20乃至26何れか一項記載の装置。前記第1命令フォーマットは、前記データ要素幅フィールドの異なる値により前記第1クラスについて32ビット及び64ビットデータ要素の指定をサポートする、請求項27記載のプロセッサ。命令セットを実行するよう構成されるプロセッサを有する装置であって、前記命令セットは、第1命令フォーマットを有し、前記第1命令フォーマットは、複数の第1テンプレートを有し、前記第1命令フォーマットは、ベース処理フィールド、データ要素幅Wフィールド及びライトマスクフィールドを含む複数のフィールドを有し、前記第1命令フォーマットは、前記ベース処理フィールドの異なる値により異なるベクトル処理の指定をサポートし、前記ベクトル処理の各々は、異なるデータ要素位置の複数のデータ要素を含むデスティネーションベクトルオペランドを生成し、前記第1命令フォーマットは、前記データ要素幅フィールドの異なる値により異なるデータ要素幅の指定をサポートし、前記ベース処理フィールド、前記データ要素幅フィールド及び前記ライトマスクフィールドはそれぞれ、命令ストリームにおける前記第1命令フォーマットの命令の各出現に対して1つの値のみを格納してもよく、前記プロセッサは、前記出現の各々について、前記データ要素幅フィールドのコンテンツに基づき使用すべき前記データ要素幅の1つのデータ要素幅を区別し、前記出現の各々について、前記出現のベクトル処理から得られる前記データ要素の何れが前記デスティネーションオペランドの対応するデータ要素位置に反映されるべきか、前記出現に対する前記ライトマスクフィールドのコンテンツと前記データ要素幅とに基づき区別し、前記ライトマスクフィールドに配置可能な前記異なる値の1つが、前記出現のベクトル処理の結果のすべてが前記デスティネーションベクトルオペランドの対応するデータ要素位置に反映されるべきか示すためリザーブされ、前記ライトマスクフィールドに配置可能な前記異なる値の他の値が設定可能なライトマスクを格納する異なるライトマスクレジスタを区別し、前記出現のためのデータ要素幅が対応するデータ要素位置の何れかと前記設定可能なライトマスクの何れかのビットとを区別することによって、前記複数の第1テンプレートにおける前記命令の出現を復号化する復号化ユニットを含む装置。前記第1命令フォーマットは、前記データ要素幅フィールドの異なる値により32ビット及び64ビットデータ要素幅の指定をサポートする、請求項29記載の装置。前記ライトマスクレジスタが、少なくとも64ビットである、請求項29又は30記載の装置。前記異なるベクトル処理により生成される前記デスティネーションオペランドは、512ビットである、請求項29乃至31何れか一項記載の装置。前記ライトマスクのシングルビットが、前記デスティネーションオペランドのデータ要素位置の各々について使用される、請求項29乃至32何れか一項記載の装置。前記ライトマスクレジスタの下位16ビットは、32ビットデータ要素を有する512ビットベクトルについて使用され、前記ライトマスクレジスタの下位8ビットは、32ビットデータ要素を有する512ビットベクトルについて使用される、請求項29乃至33何れか一項記載の装置。前記異なるベクトル処理の少なくとも特定のベクトル処理は、2つのソースオペランドに対して実行され、前記デスティネーションオペランドは、前記2つのソースオペランドの何れかを上書きしない、請求項29乃至34何れか一項記載の装置。前記異なるベクトル処理の少なくとも特定のベクトル処理は、2つのソースオペランドに対して実行され、前記デスティネーションオペランドは、前記2つのソースオペランドの何れかを上書きする、請求項29乃至35何れか一項記載の装置。前記出現のベクトル処理を反映しない前記デスティネーションオペランドのデータ要素位置のデータ要素は、保存される、請求項29乃至36何れか一項記載の装置。命令セットを実行するよう構成されるプロセッサを有する装置であって、前記命令セットは、第1命令フォーマットを有し、前記第1命令フォーマットは、ベース処理フィールド、データ要素幅Wフィールド、ベクトル長フィールド及びライトマスクフィールドを含む複数のフィールドを各々が含む複数の第1テンプレートを有し、前記第1命令フォーマットは、前記ベース処理フィールドの異なる値により複数の異なるベクトル処理の指定をサポートし、前記複数のベクトル処理の各々は、少なくとも1つのデスティネーションベクトルオペランドを生成するため、少なくとも1つのソースベクトルオペランドの複数の異なるデータ要素位置の各々について処理が独立して実行されることを要求し、前記第1命令フォーマットは、前記データ要素幅フィールドの異なる値により32ビット及び64ビットデータ要素幅の指定をサポートし、前記複数のテンプレートは、前記ベクトル長フィールドの異なる値により複数の異なるベクトル長の指定をサポートし、前記第1命令フォーマットは、前記ライトマスクフィールドの異なる値により異なるライトマスクの指定をサポートし、前記異なる値の1つのみが、命令ストリームにおける前記第1命令フォーマットの命令の各出現に対して、前記ベース処理フィールド、前記拡張処理フィールド、前記データ要素幅フィールド及び前記ライトマスクフィールドの各々に配置されてもよく、前記プロセッサは、前記出現の各々について、前記ベース処理フィールドのコンテンツに基づき実行すべき前記異なるベクトル処理の1つを区別し、前記出現の各々について、前記データ要素幅フィールドのコンテンツに基づき使用すべき前記データ要素幅の1つを区別し、前記出現の各々について、前記ベクトル長フィールドのコンテンツに基づき使用すべき前記ベクトル長の1つを区別し、前記出現の各々について、前記ライトマスクフィールドのコンテンツに基づき使用すべき異なるライトマスクの1つを区別し、前記出現のデータ要素幅と前記ベクトル長とは、対応するデータ要素幅と前記出現のライトマスクのビットとを区別し、前記出現のライトマスクは、データ要素位置毎に前記出現のベクトル処理の結果が前記デスティネーションベクトルオペランドの対応するデータ要素位置において反映されるか指定することによって、前記複数の第1テンプレートにおける前記命令の出現を復号化する復号化ユニットを有する装置。前記複数の異なるベクトル長は、128、256及び512ビットを含む、請求項38記載の装置。前記第1命令フォーマットはまた、前記データ要素幅フィールドの異なる値により8ビット及び16ビットデータ要素幅の指定をサポートする、請求項38又は39記載の装置。前記第1命令フォーマットはまた、前記ベース処理フィールド内のリアルオペコードフィールドの異なる値により8ビット及び16ビットデータ要素幅の指定をサポートする、請求項38乃至40何れか一項記載の装置。前記第1命令フォーマットは、ゼロ化ライトマスキング処理をサポートする、請求項38乃至41何れか一項記載の装置。前記ライトマスクフィールドに配置可能な前記異なる値の1つは、前記出現のベクトル処理の結果のすべてが前記デスティネーションベクトルオペランドの対応するデータ要素位置に反映されるべきであることを示すためリザーブされる、請求項38乃至42何れか一項記載の装置。前記ライトマスクフィールドに配置可能な前記異なる値の他の値は、設定可能なライトマスクを格納する異なるライトマスクレジスタを区別する、請求項38乃至43何れか一項記載の装置。前記第1命令フォーマットは、2つのソースベクトルオペランドに対する処理をサポートし、前記デスティネーションオペランドは、前記2つのソースベクトルオペランドの何れかを上書きしない、請求項38乃至43何れか一項記載の装置。前記第1命令フォーマットは、2つのソースベクトルオペランドに対する処理をサポートし、前記デスティネーションオペランドは、前記2つのソースベクトルオペランドの1つを上書きする、請求項38乃至44何れか一項記載の装置。命令セットを実行するよう構成されるプロセッサを有する装置であって、前記命令セットは、第1命令フォーマットを有し、前記第1命令フォーマットは、複数の第1テンプレートを有し、前記第1命令フォーマットは、ベース処理フィールド、モディファイアフィールド、アルファフィールド及びベータフィールドを含む複数のフィールドを有し、前記第1命令フォーマットは、前記ベース処理フィールドの異なる値により複数の異なるベクトル処理の指定をサポートし、前記複数のベクトル処理の各々は、ソースオペランドから異なるデータ要素位置の複数のデータ要素を有するデスティネーションベクトルオペランドを生成し、前記第1命令フォーマットは、前記モディファイアフィールドの異なる値によりメモリアクセスと非メモリアクセスとの指定をサポートし、前記第1命令フォーマットは、前記モディファイアフィールドのコンテンツに基づき前記アルファフィールドと前記ベータフィールドとのコンテンツの異なる解釈をサポートし、前記ベース処理フィールド、前記モディファイアフィールド、前記アルファフィールド及び前記ベータフィールドは、命令ストリームにおける前記第1命令フォーマットの命令の各出現に対して1つのみの値を格納可能であり、前記プロセッサは、メモリアクセスを指定する出現と前記メモリアクセスを指定しない出現とを、前記異なる出現における前記モディファイアフィールドのコンテンツに基づき区別し、前記モディファイアフィールドのコンテンツがメモリアクセスを指定するとき、前記アルファフィールドと前記ベータフィールドとはそれぞれ、イビクションヒントフィールドとデータ操作フィールドとして解釈され、前記モディファイアフィールドのコンテンツによりメモリアクセスを指定する出現の各々について、前記アルファフィールドのコンテンツと前記出現における前記イビクションヒントフィールドとしてのそれの解釈とに基づき、前記イビクションヒントが一時的又は非一時的であるか、及び前記ベース処理フィールドのコンテンツ、前記ベータフィールドのコンテンツ及び前記データ操作フィールドとしての前記ベータフィールドの解釈に基づき、実行すべき複数のメモリアクセス処理の1つと、適用すべき複数のデータ操作処理の1つとを区別し、前記複数のデータ操作処理は、非変換と変換処理とを含み、前記変換処理は、前記ソースオペランドのデータタイプから前記デスティネーションベクトルオペランドの異なるデータタイプへの変換を示すことによって、前記複数の第1テンプレートにおける前記命令の出現を復号化する復号化ユニットを有する装置。前記メモリアクセス処理の1以上のセットは、前記サポートされるデータ操作処理が前記非変換処理であるロードである、請求項47記載のプロセッサ。前記メモリアクセス処理の1以上のセットは、前記サポートされるデータ操作処理が前記非変換処理と前記ソースオペランドのデータ要素のデータタイプの異なるアップ変換とを含むロードである、請求項47又は48記載のプロセッサ。前記メモリアクセス処理の1以上のセットは、前記サポートされるデータ操作処理が前記非変換処理であるストアである、請求項47乃至49何れか一項記載のプロセッサ。前記メモリアクセス処理の1以上のセットは、前記サポートされるデータ操作処理が前記非変換処理と前記デスティネーションベクトルオペランドのデータ要素のデータタイプの異なるダウン変換とを含むストアである、請求項47乃至50何れか一項記載のプロセッサ。前記メモリアクセス処理の1以上のセットは、前記サポートされるデータ操作処理が前記非変換処理と1以上のブロードキャスト処理のセットであるロード/処理である、請求項47乃至51何れか一項記載のプロセッサ。前記メモリアクセス処理の1以上のセットは、前記サポートされるデータ操作処理が前記非変換処理、1以上のブロードキャスト処理のセット及び前記ソースオペランドのデータ要素のデータタイプの異なるアップ変換を含む、請求項47乃至52何れか一項記載のプロセッサ。前記ブロードキャスト処理のセットは、1要素粒度ブロードキャストと4要素粒度ブロードキャストとを含む、請求項47乃至53何れか一項記載のプロセッサ。前記第1命令フォーマットはさらに、データ要素幅フィールドを有し、前記第1命令フォーマットは、前記データ要素幅の異なる値により異なるデータ要素幅の指定をサポートする、請求項47乃至54何れか一項記載のプロセッサ。前記メモリアクセス処理の1以上のセットは、前記サポートされるデータ操作処理が前記非変換処理、1以上のブロードキャスト処理のセット及び前記ソースオペランドのデータ要素のデータタイプのPackedグラフィックデータ要素へのアップ変換を含む、請求項47乃至55何れか一項記載のプロセッサ。命令セットを実行するよう構成されるプロセッサを有する装置であって、前記命令セットは、第1命令フォーマットを有し、前記第1命令フォーマットは、ベース処理フィールド、モディファイアフィールド、データ要素幅フィールド及び拡張処理フィールドを含む複数のフィールドを有し、前記第1命令フォーマットは、前記ベース処理フィールドの異なる値により複数の異なるベクトル処理の指定をサポートし、前記複数のベクトル処理の各々は、異なるデータ要素位置の複数のデータ要素を有し、前記第1命令フォーマットは、前記モディファイアフィールドの異なる値によりメモリアクセス処理及び非メモリアクセス処理の指定をサポートし、前記モディファイアフィールドのコンテンツがスケーリングされたディスプレースメントによるメモリアクセス処理を指定するとき、前記第1命令フォーマットは、ディスプレースメントファクタフィールドを含み、前記ベース処理フィールド、前記モディファイアフィールド、前記データ要素幅フィールド及び前記拡張処理フィールドはそれぞれ、前記第1命令フォーマットの命令の各出現に対して1つのみの値を格納可能であり、前記プロセッサは、命令ストリームに出現する前記第1命令フォーマットの命令を実行するプロセッサパイプラインを含み、前記パイプラインは、スケーリングされたディスプレースメントによるメモリアクセスを指定する前記第1命令フォーマットの命令の出現と前記メモリアクセスを指定しない前記第1命令フォーマットの命令の出現とを前記異なる出現における前記モディファイアフィールドのコンテンツに基づき区別し、前記モディファイアフィールドのコンテンツによりスケーリングされたディスプレースメントによりメモリアクセスを指定する出現について、前記ベース処理フィールド、前記データ要素幅フィールド及び前記拡張処理フィールドの2以上のコンテンツに基づき複数のメモリアクセスサイズの間で区別し、前記モディファイアフィールドのコンテンツによりスケーリングされたディスプレースメントによりメモリアクセスを指定する出現の各々について、前記メモリアクセスのサイズと前記ディスプレースメントファクタフィールドのコンテンツとの乗算に基づきスケーリングされたディスプレースメントを決定し、前記スケーリングされたディスプレースメントはアドレスを生成するのに利用されるべきであるよう構成される装置。前記第1命令フォーマットはまた、スケーリングされないディスプレースメントと非ディスプレースメントとを指定する前記モディファイアフィールドのコンテンツをサポートする、請求項57記載の装置。前記第1命令フォーマットは、前記モディファイアフィールドのコンテンツがスケーリングされないディスプレースメントによりメモリアクセス処理を指定するとき、ディスプレースメントフィールドを有する、請求項57又は58記載の装置。前記モディファイアフィールドのコンテンツがスケーリングされたディスプレースメントによるメモリアクセス処理を指定ッするとき、スケール、インデックス及びベースが前記第1命令フォーマットのフィールドからプルされ、前記スケール、インデックス、ベース及びスケーリングされたディスプレースメントは、前記アドレスを生成するのに利用される、請求項57乃至59何れか一項記載の装置。前記スケールは、2ビットスケールフィールドからプルされ、前記インデックスは、1ビットXフィールドと3ビットXXXフィールドとの組み合わせからプルされ、前記ベースは、1ビットBフィールドと3ビットBBBの組み合わせからプルされる、請求項60記載の装置。前記複数のメモリアクセスサイズを区別するのに使用されるフィールドの選択は、前記拡張処理フィールド内のクラスフィールドのコンテンツに基づく、請求項57乃至61何れか一項記載の装置。前記クラスフィールドのコンテンツが第1クラスを指定するとき、前記複数のメモリアクセスサイズを区別するのに使用されるフィールドは、前記ベース処理フィールド、前記拡張処理フィールド内のデータ操作フィールド及び前記データ要素幅フィールドの2以上を含む、請求項62記載の装置。前記クラスフィールドのコンテンツが第2クラスを指定するとき、前記複数のメモリアクセスサイズを区別するのに使用されるフィールドは、前記ベース処理フィールド、前記拡張処理フィールド内のブロードキャストフィールド、前記拡張処理フィールド内のベクトル長フィールド及び前記データ要素幅フィールドの2以上を含む、請求項62又は63記載の装置。前記ディスプレースメントファクタフィールドは、シングルバイトである、請求項57乃至64何れか一項記載の装置。前記ディスプレースメントファクタフィールドのコンテンツは、-128~127までの符号付きの値として解釈される、請求項65記載の装置。前記複数のメモリアクセスサイズは、前記メモリアクセスにおけるバイト数に対応する、請求項57乃至66何れか一項記載の装置。前記複数のメモリアクセスサイズは、1バイト、2バイト、4バイト、8バイト、16バイト、32バイト及び64バイトである、請求項57乃至67何れか一項記載の装置。命令セットを実行するよう構成されるプロセッサを有する装置であって、前記命令セットは、第1命令フォーマットを有し、前記第1命令フォーマットは、複数の第1テンプレートを有し、前記第1命令フォーマットは、ベース処理フィールド、モディファイアフィールド、アルファフィールド、ベータフィールド及びデータ要素幅フィールドを含む複数のフィールドを有し、前記第1命令フォーマットは、前記ベース処理フィールドの異なる値により複数の異なるベクトル処理の指定をサポートし、前記複数のベクトル処理の各々は、異なるデータ要素位置の複数のデータ要素を有するデスティネーションベクトルオペランドを生成し、前記第1命令フォーマットは、前記モディファイアフィールドの異なる値によりメモリアクセス処理と非メモリアクセス処理との指定をサポートし、前記第1命令フォーマットは、前記データ要素幅フィールドの異なる値により異なるデータ要素幅の指定をサポートし、前記第1命令フォーマットは、前記モディファイアフィールドのコンテンツに基づき前記アルファフィールドと前記ベータフィールドとのコンテンツの異なる解釈をサポートし、前記ベース処理フィールド、前記モディファイアフィールド、前記アルファフィールド、前記ベータフィールド及び前記データ要素幅フィールドはそれぞれ、命令ストリームにおける前記第1命令フォーマットの命令の各出現に対して1つのみの値を格納可能であり、前記プロセッサは、メモリアクセスを指定する出現と前記メモリアクセスを指定しない出現とを前記異なる出現における前記モディファイアフィールドのコンテンツに基づき区別し、前記モディファイアフィールドのコンテンツによりメモリアクセスを指定しない出現の各々について、前記出現における前記アルファフィールドのコンテンツに基づきデータ変換タイプ処理により拡張するか区別し、前記アルファフィールドのコンテンツが前記データ変換タイプ処理を示すとき、前記ベータフィールドはデータ変換フィールドとして解釈され、メモリアクセスを指定せず、データ変換タイプ処理を指定する出現の各々について、前記データ要素幅フィールドのコンテンツに基づき使用すべき前記データ要素幅の1つと、前記データ変換フィールドのコンテンツに基以下の説明では、ロジック実現形態、オペコード、オペランド指定方法、リソースパーティション化/共有化/複製実現形態、システムコンポーネントのタイプ及び相互関係並びにロジックパーティション化/統合選択などの多数の具体的詳細が、本発明のより完全な理解を提供するため与えられる。しかしながら、本発明はこのような具体的な詳細なしに実施されてもよいことが当業者に理解されるであろう。他の例では、本発明を不明りょうにしないため、制御構造、ゲートレベル回路及びフルソフトウェア命令シーケンスは図示されていない。当業者は、包含された説明によって過度の実験なく適切な機能を実現可能であろう。本明細書を通じた一実施例、実施例又は1以上の実施例などの表現は、ある特徴が本発明の実施例の実現に含まれてもよいが、すべての実施例が当該特徴を必ずしも含む必要がないことを意味することがまた、理解されるべきである。同様に、本説明における各種特徴は、本開示を簡素化し、様々な発明の特徴の理解に資するため、単一の実施例、図面又はその説明に一緒にグループ化されることもある。さらに、ある特徴、構成又は特性がある実施例に関して説明されるとき、明示的に説明されているか否かにかかわらず、他の実施例に関して当該特徴、構成又は特性を実行することは当業者の知識の範囲内であることが主張される。しかしながら、この開示の方法は、各請求項に明示的に記載されるよりも本発明がより多くの特徴を要求する意図を反映するものとして解釈されるべきでない。むしろ、以下の請求項が反映するように、発明の態様は単一の開示された実施例のすべての特徴より少ないものであってもよい。従って、詳細な説明に後続する請求項はこの詳細な説明に明示的に含まれ、各請求項が本発明の独立した実施例として自立する。以下の説明及び請求項では、結合及び接続という用語が、それらの派生語と共に利用されてもよい。これらの用語は互いに同義語として意図されてないことが理解されるべきである。結合は、互いに直接的な物理的又は電気的セッション状態にあってもよいし、又はなくてもよい2以上の要素が互いに連係又はやりとりすることを示すのに利用される。接続は、互いに結合された2以上の要素の間の通信の確立を示すのに利用される。フロー図の処理は、ブロック図の例示的な実施例を参照して説明される。しかしながら、フロー図の処理はブロック図を参照して説明された以外の本発明の実施例により実行可能であり、ブロック図を参照して説明される実施例はフロー図を参照して説明されたものと異なる処理を実行可能であることが理解されるべきである。理解を容易にするため、破線はあるアイテムの任意的な性質例えば、本発明の所与の実現形態によりサポートされていない特徴、所与の実現形態によりサポートされているが、ある状況では利用されるが、他の状況では利用されない特徴などを示すため図面において利用されている。ベクトルフレンドリ命令フォーマット-図1~16ベクトルフレンドリ命令フォーマットは、ベクトル命令に適した命令である例えば、ベクトル処理に特有のフィールドがあるなど。ベクトル処理とスカラ処理との双方がベクトルフレンドリ命令フォーマットを介しサポートされる実施例が説明されるが、他の実施例はベクトルフレンドリ命令フォーマットによるベクトル処理のみを利用する。[命令フォーマットの個数-図1A~1B]1つの命令フォーマット-図1A図1Aは、本発明の一実施例によるベクトルフレンドリ命令フォーマットによる命令のみを有する命令ストリームを示すブロック図である。命令ストリームは、すべてがベクトルフレンドリフォーマット100A~100JによるJ個の命令のシーケンスを含む。本発明の一実施例では、プロセッサは、ベクトル命令フォーマットのみをサポートし、当該命令ストリームを実行可能である。複数の命令フォーマット-図1B図1Bは、本発明の一実施例による複数の命令フォーマットによる命令を有する命令ストリームを示すブロック図である。命令ストリームの各命令は、ベクトルフレンドリ命令フォーマット、第2フォーマット又は第3フォーマットにより表現される。命令ストリームは、J個の命令110A~110Jを有する。本発明の一実施例では、プロセッサは、複数の命令フォーマット図1Bに示されるフォーマットを含むをサポートし、図1A~1Bの双方の命令ストリームを実行可能である。[例示的な汎用的ベクトルフレンドリ命令フォーマット-図2A~B]図2A~Bは、本発明の実施例による汎用的ベクトルフレンドリ命令フォーマット及びそれの命令テンプレートを示すブロック図である。図2Aは、本発明の実施例による汎用的ベクトルフレンドリ命令フォーマット及びそのクラスA命令テンプレートを示すブロック図であり、図2Bは、本発明の実施例による汎用的ベクトルフレンドリ命令フォーマット及びそのクラスB命令テンプレートを示すブロック図である。具体的には、クラスA及びクラスB命令テンプレートとして定義される汎用的ベクトルフレンドリ命令フォーマット200は、その双方が非メモリアクセス205の命令テンプレートとメモリアクセス220の命令テンプレートとを含む。ベクトルフレンドリ命令フォーマットに関する汎用的という用語は、何れか特定の命令セットに結び付けされていない命令フォーマットを参照する。ベクトルフレンドリ命令フォーマットの命令がレジスタ非メモリアクセス205の命令テンプレート又はレジスタ/メモリメモリアクセス220の命令テンプレートをソースとするベクトルに対して実行される実施例が説明される一方、本発明の他の実施例はこれらの1つしかサポートしなくてもよい。また、ベクトル命令フォーマットによるロード及びストア命令がある本発明の実施例が説明される一方、他の実施例はさらに又は代わりに、レジスタに及びレジスタからベクトルを移動する異なる命令フォーマットによる命令を有するメモリからレジスタへ、レジスタからメモリへ、レジスタ間など。さらに、2つのクラスの命令テンプレートをサポートする本発明の実施例が説明される一方、他の実施例はこれらの1つのみ又は2より多くをサポートしてもよい。ベクトルフレンドリ命令フォーマットが、32ビット4バイト又は64ビット8バイトデータ要素幅又はサイズを有する64バイトベクトルオペランド長又はサイズ及び64バイトベクトルは16ダブルワードサイズ要素又は8クワドワードサイズ要素から構成される、16ビット2バイト又は8ビット1バイトデータ要素幅又はサイズを有する64バイトベクトルオペランド長又はサイズ、32ビット4バイト、64ビット8バイト、16ビット2バイト又は8ビット1バイトデータ要素幅又はサイズを有する32バイトベクトルオペランド長又はサイズ、32ビット4バイト、64ビット8バイト、16ビット2バイト又は8ビット1バイトデータ要素幅又はサイズを有する16バイトベクトルオペランド長又はサイズをサポートする一方、他の実施例は、より多く、より少なく又は異なるデータ要素幅128ビット16バイトデータ要素幅などを有するより多い、より少ない及び/又は異なるベクトルオペランドサイズ256バイトベクトルオペランドなどをサポートしてもよい。図2AのクラスA命令テンプレートは、1非メモリアクセス205の命令テンプレート内には、非メモリアクセスフルラウンド制御タイプ処理210の命令テンプレートと、非メモリアクセスデータ変換タイプ処理215の命令テンプレートとが示され、2メモリアクセス220の命令テンプレート内には、メモリアクセス一時的225命令テンプレートとメモリアクセス非一時的230命令テンプレートとが示される、ことを含む。図2BのクラスB命令テンプレートは、1非メモリアクセス205命令テンプレート内には、非メモリアクセスライトマスク制御パーシャルラウンド制御タイプ処理212命令テンプレートと、非メモリアクセスライトマスク制御vsizeタイプ処理212命令テンプレートと、非メモリアクセスライトマスク制御vsizeタイプ処理217命令テンプレートとが示され、2メモリアクセス220命令テンプレート内には、メモリアクセスライトマスク制御227命令テンプレートが示される、ことを含む。フォーマット汎用的ベクトルフレンドリ命令フォーマット200は、図2A~Bに示される順序により以下でリストされたフィールドを含む。フォーマットフィールド240-当該フィールドの特定の値命令フォーマット識別子の値は、ベクトルフレンドリ命令フォーマットと、命令ストリームのベクトルフレンドリ命令フォーマットの命令の発生とを一意的に特定する。従って、フォーマットフィールド240のコンテンツは、第1命令フォーマットの命令の発生と他の命令フォーマットの命令の発生とを区別し、これにより、ベクトルフレンドリ命令フォーマットの他の命令フォーマットを有する命令セットへの導入を可能にする。また、当該フィールドは、それが汎用的ベクトルフレンドリ命令フォーマットしか有さない命令セットについて不要であるという点で任意的である。ベース処理フィールド242-それのコンテンツは、異なるベース処理を区別する。後述されるように、ベース処理フィールド242は、オペコードフィールドを含み、及び/又はその一部であってもよい。レジスタインデックスフィールド244-それのコンテンツは、直接的又はアドレス生成を介し、レジスタ又はメモリにある場合、ソース及びデスティネーションオペランドの位置を特定する。これらは、P×Q32×512などレジスタファイルからN個のレジスタを選択するのに十分な個数のビットを含む。一実施例では、Nは3個までソースレジスタと1つのデスティネーションレジスタとであってもよいが、他の実施例は、より多く又はより少ないソース及びデスティネーションレジスタをサポートしてもよい例えば、2つまでのソースをサポートしてもよく、これらのソースの1つがまたデスティネーションとして機能し、3つまでのソースをサポートしてもよく、これらのソースの1つがまたデスティネーションとして機能し、2つまでのソースと1つのデスティネーションをサポートしてもよい。一実施例では、P=32であるが、他の実施例は、より多くの又はより少ないレジスタ16個などをサポートしてもよい。一実施例では、Q=512ビットであるが、他の実施例は、より多く又はより少ないビット128、1024などをサポートしてもよい。モディファイアフィールド246-それのコンテンツは、メモリアクセスを指定する汎用的ベクトル命令フォーマットの命令の発生と、それを指定しないものとを、すなわち、非メモリアクセス205命令テンプレートとメモリアクセス220命令テンプレートとの間を区別する。メモリアクセス処理はメモリ階層との間でリード及びライトを実行するがいくつかのケースでは、レジスタの値を用いたソース及び/又はデスティネーションアドレス、非メモリアクセス処理はこれらを実行しない例えば、ソース及びデスティネーションはレジスタである。一実施例では、当該フィールドはまたメモリアドレス計算を実行するための3つの異なる方法を選択するが、他の実施例は、メモリアドレス計算を実行するためのより多く、より少なく又は異なる方法をサポートしてもよい。拡張処理フィールド250-それのコンテンツは、ベース処理に加えて実行される各種の異なる処理の何れかを区別する。当該フィールドは、コンテクストに特有のものである。本発明の一実施例では、当該フィールドは、クラスフィールド268、アルファフィールド252及びベータフィールド254に分割される。拡張処理フィールドは、共通する処理グループが2、3又は4個の命令でなく単一の命令により実行されることを可能にする。拡張フィールド250を利用して要求される命令の個数を低減するいくつかの命令の例これらの名称は以降でより詳細に説明されるが後述される。ただし、[rax]はアドレス生成用の利用されるベースポインタであり、{}はデータ操作フィールドにより指定される変換処理を示す以下でより詳細に説明されるスケールフィールド260-それのコンテンツは、メモリアドレス生成のためのインデックスフィールドのコンテンツのスケーリングを可能にする例えば、2scaleindexbaseを利用するアドレス生成のためなど。ディスプレースメントフィールド262A-それのオンテンツは、メモリアドレス生成の一部として利用される例えば、2scaleindexbasedisplacementを利用するアドレス生成のためなど。ディスプレースメントファクタフィールド262Bディスプレースメントファクタフィールド262B上の直接的なディスプレースメントフィールド262Aの並置は、一方又は他方が利用されることを示すことに留意されたい-それのコンテンツはアドレス生成の一部として利用され、それはメモリアクセスのサイズNによってスケーリングされるべきディスプレースメントファクタを指定する-ただし、Nはメモリアドレスにおけるバイト数である例えば、2scaleindexbasescaleddisplacementを利用したアドレス生成のためなど。冗長な低オーダビットは無視され、ディスプレースメントファクタフィールドのコンテンツが、有効アドレスを計算するのに利用される最終的なディスプレースメントを生成するため、メモリオペランドのトータルサイズNと乗算される。Nの値は、後述されるフルオペコードフィールド274後述される及びデータ操作フィールド254Cに基づきランタイム時にプロセッサハードウェアにより決定される。ディスプレースメントフィールド262A及びディスプレースメントファクタフィールド262Bは、それらが非メモリアクセス205命令テンプレートのため利用されず、及び/又は異なる実施例がこれら2つの1つしか又は何れも実現しなくてもよいという意味で任意的である。データ要素幅フィールド264-それのコンテンツは、データ要素幅の何れの数が利用されるべきか区別するいくつかの実施例では、すべての命令について、他の実施例では、命令の一部のみについて。当該フィールドは、1つのデータ要素幅しかサポートされていない場合、及び/又はオペコードのある態様を利用してデータ要素幅がサポートされる場合、それは不要であるという意味で任意的である。ライトマスクフィールド270-それのコンテンツは、データ要素位置単位で。デスティネーションベクトルオペランドのデータ要素位置がベース処理及び拡張処理の結果を反映するか制御する。クラスA命令テンプレートは、マージング-ライトマスキングをサポートする一方、クラスB命令テンプレートは、マージング-ライトマスキングとゼロ化-ライトマスキングとの双方をサポートする。マージングすると、ベクトルマスクは、デスティネーションの何れかの要素セットがベース処理及び拡張処理により指定される何れかの処理の実行中に更新からプロテクトされることを可能にし、他の実施例では、対応するマスクビットが0を有するデスティネーションの各要素の古い値を保存する。他方、ゼロ化のとき、ベクトルマスクは、デスティネーションの何れかの要素セットがベース処理及び拡張処理により指定される何れかの処理の実行中にゼロ化されることを可能にし、一実施例では、デスティネーションの要素は、対応するマスクビットが0の値を有するとき、0に設定される。この機能のサブセットは、実行される処理のベクトル長を制御する能力であるすなわち、要素のスパンが最初から最後まで変更される。しかしながら、変更される要素は連続的であることは必要でない。従って、ライトマスクフィールド270は、ロード、ストア、算術的、論理的などを含むパーシャルベクトル処理を可能にする。また、当該マスキングは、フォルト抑制に利用可能であるすなわち、フォルトを生じさせる可能性のある/生じさせるであろう何れかの処理の結果の受信を防ぐためのデスティネーションのデータ要素位置をマスキングすることによって、-例えば、メモリのベクトルがページ境界をクロスし、第2ページでなく第1ページがページフォルトを生じさせることを仮定すると、第1ページにあるベクトルのすべてのデータ要素がライトマスクによりマスキングされる場合、ページフォルトは無視できる。さらに、ライトマスクは、特定タイプの条件ステートメントを含むループのベクトル化を可能にする。ライトマスクフィールド270のコンテンツが利用すべきライトマスクを含む複数のライトマスクレジスタの1つを選択する本発明の実施例が説明されるが及びライトマスクフィールド270のコンテンツは、実行されるマスキングを間接的に特定する、他の実施例はさらに又は代わりに、マスクライトフィールド270のコンテンツが実行されるマスキングを間接的に指定することを可能にする。さらに、1レジスタリネーミングパイプライン段階中、デスティネーションはもはやインプリシットなソースでないため、デスティネーションオペランドがまたソースでない命令非三項命令とも呼ぶに対して利用され処理結果でない何れかのデータ要素何れかのマスクされたデータ要素がゼロ化されるため、現在のデスティネーションレジスタからのデータ要素はリネームされたデスティネーションレジスタにコピーされる必要はなく、又は当該処理と共に搬送される必要もない、2ライトバック段階中、ゼロが書き込まれているとき、ゼロ化はパフォーマンスの向上を可能にする。即時Immediateフィールド272-それのコンテンツは即時の指定を可能にする。当該フィールドは、それが即時をサポートしない汎用的ベクトルフレンドリフォーマットの実現形態に存在せず、即時を利用しない命令に存在しないという意味で任意的である。命令テンプレートクラス選択クラスフィールド268-それのコンテンツは命令の異なるクラスを区別する。図2A~Bを参照して、当該フィールドのコンテンツはクラスA命令とクラスB命令との間で選択する。図2A~Bでは、丸められた四隅が、特定の値がフィールドにあることを示すのに利用される例えば、図2A~Bにおけるクラスフィールド268のクラスA268A及びクラスB268Bなど。クラスAの非メモリアクセス命令テンプレートクラスAの非メモリアクセス205命令テンプレートのケースでは、アルファフィールド252はRSフィールド252Aとして解釈され、それのコンテンツは、異なる拡張処理タイプの何れが実行されるべきか区別し例えば、ラウンド252A.1及び変換252A.2がそれぞれ非メモリアクセスラウンドタイプ処理210命令テンプレートと非メモリアクセスデータ変換タイプ処理215命令テンプレートとのそれぞれについて指定される、ベータフィールド254は、指定されたタイプの処理の何れが実行されるべきか区別する。図2において、丸められたコーナーブロックは、指定された値が存在することを示すのに利用される例えば、モディファイアフィールド246の非メモリアクセス246A、アルファフィールド252/rsフィールド252Aのラウンド252A.1及びデータ変換252A.2など。非メモリアクセス205命令テンプレートでは、スケールフィールド260、ディスプレースメントフィールド262A及びディスプレースメントスケールフィールド262Bは存在しない。非メモリアクセス命令テンプレート-フルラウンド制御タイプ処理非メモリアクセスフルラウンド制御タイプ処理210命令テンプレートでは、ベータフィールド254はラウンド制御フィールド254Aとして解釈され、それのコンテンツはスタティックなラウンド化を提供する。本発明の説明される実施例では、ラウンド制御フィールド254Aは、SAESuppressAllfloatingpointExceptionsフィールド256及びラウンド処理制御フィールド258を含むが、他の実施例は、これらのコンセプトを同一のフィールドに符号化することをサポートか、又はこれらのコンセプト/フィールドの一方又は他方のみを有することをサポートしてもよい例えば、ラウンド処理制御フィールド258のみを有してもよい。SAEフィールド256-それのコンテンツは、例外イベント報告を不可にするか否か区別する。抑制が有効化されていることをSAEフィールド256のコンテンツが示すとき、所与の命令は何れのタイプの浮動小数点例外フラグを報告せず、浮動小数点例外ハンドラを起動しない。ラウンド処理制御フィールド258-それのコンテンツは、ラウンド処理のグループの何れが実行されるか区別するRound-up、Round-down、Round-toward-zero、Round-to-nearestなど。従って、ラウンド処理制御フィールド258は、命令単位でラウンド化モードの変更を可能にし、これが要求されるときに特に有用である。プロセッサがラウンド化モードを指定するための制御レジスタを有する本発明の一実施例では、ラウンド処理制御フィールド250のコンテンツは、当該レジスタ値を上書きする当該制御レジスタに対して保存-変更―復元を実行する必要なくラウンド化モードを選択可能であることが効果的である。非メモリアクセス命令テンプレート-データ変換タイプ処理非メモリアクセスデータ変換タイプ処理215命令テンプレートでは、ベータフィールド254はデータ変換フィールド254Bとして解釈され、それのコンテンツは、複数のデータ変換の何れが実行されるべきか区別する例えば、非データ変換、スウィズルswizzle、ブロードキャストなど。クラスAのメモリアクセス命令テンプレートクラスAのメモリアクセス220命令テンプレートのケースでは、アルファフィールド252はイビクトヒントフィールド252Bとして解釈され、それのコンテンツは、イビクトヒントの何れが利用されるべきか区別し図2Aでは、一時的252B.1及び非一時的252B.2がそれぞれ、メモリアクセス一時的225命令テンプレートとメモリアクセス非一時的230命令テンプレートとについて指定される、ベータフィールド254がデータ操作フィールド254Cとして解釈され、それのコンテンツは、複数のデータ操作処理プリミティブとして知られるの何れが実行されるべきか区別する例えば、非操作、ブロードキャスト、ソースのアップ変換及びデスティネーションのダウン変換など。メモリアクセス220命令テンプレートは、スケールフィールド260と、任意的にはディスプレースメントフィールド262A又はディスプレースメントスケールフィールド262Bとを含む。ベクトルメモリ命令は、変換サポートによるメモリからのベクトルロードとメモリへのベクトルストアとを実行する。通常のベクトル命令について、ベクトルメモリ命令はデータ要素毎にメモリとの間でデータを転送し、実際の転送される要素は、ライトマスクとして選択されたベクトルマスクのコンテンツにより指示される。図2Aにおいて、丸められた四隅は、特定の値がフィールドに存在することを示すのに利用される例えば、モディファイアフィールド246のメモリアクセス246B、アルファフィールド252/イビクトヒントフィールド252Bの一時的252B.1及び非一時的252B.2など。メモリアクセス命令テンプレート-一時的一時的データは、キャッシュ処理から利益を享受するのに十分すぐに再利用される可能性のあるデータである。すなわち、しかしながら、ヒント及び異なるプロセッサは、ヒントを完全に無視することを含む異なる方法によりそれを実現してもよい。メモリアクセス命令テンプレート-非一時的非一時的データは、第1レベルキャッシュへのキャッシュ処理から利益を享受するのに十分すぐに再利用される可能性のあるデータであり、イビクションについてプライオリティが与えられるべきである。すなわち、しかしながら、ヒント及び異なるプロセッサは、ヒントを完全に無視することを含む異なる方法によりそれを実現してもよい。クラスBの命令テンプレートクラスBの命令テンプレートのケースでは、アルファフィールド252はライトマスク制御Zフィールド252Cとして解釈され、それのコンテンツは、ライトマスクフィールド270により制御されるライトマスキングがマージング又はゼロ化であるべきであるか区別する。クラスBの非メモリアクセス命令テンプレートクラスBの非メモリアクセス205命令テンプレートのケースでは、ベータフィールド254の一部はRLフィールド257Aとして解釈され、それのコンテンツは、異なる拡張処理タイプの何れが実行されるべきか区別し例えば、ラウンド257A.1及びベクトル長VSIZE257A.2はそれぞれ、非メモリアクセスライトマスク制御パーシャルラウンド制御タイプ処理212命令テンプレートと、非メモリアクセスライトマスク制御VSIZEタイプ処理217命令テンプレートとについて指定される、ベータフィールド254の残りは、指定されたタイプの処理の何れが実行されるべきか区別する。図2において、丸められたコーナーブロックは、特定の値が存在することを示すのに利用される例えば、モディファイアフィールド246の非メモリアクセス246A、RLフィールド257Aのラウンド257A.1及びVSIZE257A.2など。非メモリアクセス205命令テンプレートでは、スケールフィールド260、ディスプレースメントフィールド262A及びディスプレースメントスケールフィールド262Bはない。非メモリアクセス命令テンプレート-ライトマスク制御パーシャルラウンド制御タイプ処理非メモリアクセスライトマスク制御パーシャルラウンド制御タイプ処理210命令テンプレートでは、ベータフィールド254の残りはラウンド処理フィールド259Aとして解釈され、例外イベント報告は不可とされる所与の命令は何れのタイプの浮動小数点例外フラグを報告せず、浮動小数点例外ハンドラを起動しない。ラウンド処理制御フィールド259A-ラウンド処理制御フィールド258と同様に、それのコンテンツはラウンド又は丸め処理のグループの何れが実行されるべきか区別する例えば、Round-up、Round-down、Round-toward-zero及びRound-to-nearestなど。従って、ラウンド処理制御フィールド259Aは、命令単位でラウンド化モードの変更を可能にし、これが要求されるときに特に有用である。プロセッサがラウンド化モードを指定するため制御レジスタを有する本発明の一実施例では、ラウンド処理制御フィールド250のコンテンツは、レジスタ値を無効にする。制御レジスタに対して保存変更復元を実行する必要なくラウンド化モードを選択できることが効果的である。非メモリアクセス命令テンプレート-ライトマスク制御VSIZEタイプ処理非メモリアクセスライトマスク制御VSIZEタイプ処理217命令テンプレートでは、ベータフィールド254の残りはベクトル長フィールド259Bとして解釈され、それのコンテンツは実行対象の複数のデータベクトル長が何れであるか区別する例えば、128、256又は512バイトなど。クラスBのメモリアクセス命令テンプレートクラスAのメモリアクセス220命令テンプレートのケースでは、ベータフィールド254の一部はブロードキャストフィールド257Bとして解釈され、それのコンテンツはブロードキャストタイプデータ操作処理が実行されるべきか区別し、ベータフィールド254の残りはベクトル長フィールド259Bとして解釈される。メモリアクセス220命令テンプレートは、スケールフィールド260と、任意的にはディスプレースメントフィールド262A又はディスプレースメントスケールフィールド262Bとを有する。[フィールドに関する追加コメント]汎用的ベクトルフレンドリ命令フォーマット200に関して、フォーマットフィールド240、ベース処理フィールド242及びデータ要素幅フィールド264を含むフルオペコードフィールド274が示される。フルオペコードフィールド274がこれらのフィールドのすべてを含む一実施例が示されるが、フルオペコードフィールド274は、それらのすべてを必ずしもサポートしない実施例においては、これらのフィールドのすべてより少なくしか有さない。フルオペコードフィールド274は、処理コードを提供する。拡張処理フィールド250、データ要素幅フィールド264及びライトマスクフィールド270は、これらの特徴が汎用的ベクトルフレンドリ命令フォーマットによる命令単位で指定されることを可能にする。ライトマスクフィールドとデータ要素幅フィールドとの組み合わせは、異なるデータ要素幅に基づきマスクが適用されることを可能にするという点で、タイプ化された命令を生成する。命令フォーマットは、他のフィールドのコンテンツに基づき異なる目的のため異なるフィールドを再利用するため、相対的に少数のビットしか必要としない。例えば、1つの観点は、モディファイアフィールドのコンテンツは図2A~Bの非メモリアクセス205命令テンプレートとメモリアクセス2250命令テンプレートとの間で選択する一方、クラスフィールド268のコンテンツは、これらの非メモリアクセス205命令テンプレート内で図2Aの命令テンプレート210/215と図2Bの212/217との間で選択し、クラスフィールド268のコンテンツは、これらのメモリアクセス220命令テンプレート内で図2Aの命令テンプレート225/230と図2Bの227との間で選択する。他の観点から、クラスフィールド268のコンテンツは、図2A及び2BのクラスAとクラスBとの命令テンプレートの間で選択し、モディファイアフィールドのコンテンツは、これらのクラスA命令テンプレート内で図2Aの命令テンプレート205と220との間で選択し、モディファイアフィールドのコンテンツは、これらのクラスB命令テンプレート内で図2Bの命令テンプレート205と220との間で選択する。クラスA命令テンプレートを示すクラスフィールドのコンテンツのケースでは、モディファイアフィールド246のコンテンツは、アルファフィールド252の解釈を選択するrsフィールド252AとEHフィールド252Bとの間で。関連する方法では、モディファイアフィールド246とクラスフィールド268とのコンテンツは、アルファフィールドがrsフィールド252A、EHフィールド252B又はライトマスク制御Zフィールド252Cとして解釈されるか選択した。クラスA非メモリアクセス処理を示すクラス及びモディファイアフィールドのケースでは、拡張フィールドのベータフィールドの解釈は、rsフィールドのコンテンツに基づき変化し、クラスB非メモリアクセス処理を示すクラス及びモディファイアフィールドのケースでは、ベータフィールドの解釈はRLフィールドのコンテンツに依存する。クラスAメモリアクセス処理を示すクラス及びモディファイアフィールドのケースでは、拡張フィールドのベータフィールドの解釈はベース処理フィールドのコンテンツに基づき変化し、クラスBメモリアクセス処理を示すクラス及びモディファイアフィールドのケースでは、拡張フィールドのベータフィールドのブロードキャストフィールド257Bの解釈は、ベース処理フィールドのコンテンツに基づき変化する。従って、ベース処理フィールド、モディファイアフィールド及び拡張処理フィールドの組み合わせは、より広範な拡張処理が指定されることを可能にする。クラスA及びクラスB内に検出される各種命令テンプレートは、異なる状況において有用である。クラスBは、ゼロ化ライトマスキング又はより小さなベクトル長がパフォーマンスの理由により所望されるときに有用である。例えば、ゼロ化は、デスティネーションと人工的にマージする必要がもはやなくなるため、リネーム処理が利用されるときの偽の従属性を回避することを可能にし、他の例として、ベクトル長制御は、ベクトルマスクによってより短いベクトルサイズをエミュレートするとき、ストアロード転送問題を容易にする。クラスAは、1ラウンド化モード制御を同時に使用しながら浮動小数点例外を可能にしすなわち、SAEフィールドのコンテンツがnoを示すとき、2アップ変換、スウィズル、スワップ及び/又はダウン変換を利用可能であり、3グラフィックスデータタイプに対して実行されることが所望されるときに有用である。例えば、アップ変換、スウィズル、スワップ、ダウン変換及びグラフィックデータタイプは、異なるフォーマットによりソースと動作するときに要求される命令数を低減し、他の例として、例外を可能にすることは、指示されたラウンド化モードとの完全なIEEE準拠性を提供する。また、本発明のいくつかの実施例では、異なるプロセッサ又はプロセッサ内の異なるコアは、クラスAのみ、クラスBのみ又は双方のクラスをサポートしてもよい。例えば、汎用的な計算に対して意図されたハイパフォーマンス汎用的アウトオブオーダコアはクラスBのみをサポートし、グラフィック及び/又は科学的スループット計算に対して主として意図されたコアは、クラスAのみをサポートし、双方に対して意図されたコアは双方をサポートしてもよいもちろん、双方のクラスカラのテンプレートと命令とのある混合を有するが、双方のクラスカラのすべてのテンプレートと命令とを必ずしも有さないコアは、本発明の範囲内である。また、単一のプロセッサが複数のコアを有してもよく、そのすべてが同一のクラスをサポートするか、又は異なるコアが異なるクラスをサポートしてもよい。例えば、別個のグラフィックコア及び汎用コアを備えたプロセッサにおいて、グラフィック及び/又は科学的計算に対して主として意図されたグラフィックコアの1つはクラスAしかサポートせず、汎用コアの1以上は、クラスBのみをサポートする汎用計算に対して意図されたアウトオブオーダ例外及びレジスタリネーム処理を備えたハイパフォーマンス汎用コアであってもよい。別個のグラフィックコアを有しない他のプロセッサは、クラスAとクラスBとの双方をサポートする1以上の汎用的なインオーダ又はアウトオブオーダコアを有してもよい。もちろん、1つのクラスカラの特徴はまた、本発明の異なる実施例では他のクラスにおいて実現されてもよい。ハイレベル言語により記述されたプログラムは、1実行用のターゲットプロセッサによりサポートされるクラスの命令のみを有するフォーム、又は2すべてのクラスの命令の異なる組み合わせを利用して記述された他のルーチンを有し、現在コードを実行中のプロセッサによりサポートされる命令に基づき実行すべきルーチンを選択する制御フローコードを有するフォームを含む各種実行可能なフォームに配置される例えば、ジャストインタイムでコンパイルされるか、又は静的にコンパイルされるなど。例示的な特定のベクトルフレンドリ命令フォーマット-図3A~D図3Aは、本発明の実施例による例示的な特定のベクトルフレンドリ命令フォーマットを示すブロック図である。図3Aは、それがフィールドの位置、サイズ、解釈及び順序と共に、フィールドの一部の値を指定するという点で特有の特定のベクトルフレンドリ命令フォーマット300を示す。特定のベクトルフレンドリ命令フォーマット300は、x86命令セットを拡張するのに利用され、フィールドの一部は既存のx86命令セット及びその拡張AVXなどに利用されるものと類似又は同一である。このフォーマットは、拡張を有する既存のx86命令セットのプリフィックス符号化フィールド、リアルオペコードバイトフィールド、MODR/Mフィールド、SIBフィールド、ディスプレースメントフィールド及び即値フィールドと整合される。図3Aからのフィールドがマップする図2からのフィールドが示される。本発明の実施例が例示的に汎用的ベクトルフレンドリ命令フォーマット200に関して特定のベクトルフレンドリ命令フォーマット300を参照して説明されるが、本発明は、請求される場合を除き、当該特定のベクトルフレンドリ命令フォーマット300に限定されるものでない。例えば、汎用的ベクトルフレンドリ命令フォーマット200は、各種フィールドについて可能な様々なサイズを想定する一方、特定のベクトルフレンドリ命令フォーマット300は、特定サイズのフィールドを有するとして示される。具体例として、データ要素幅フィールド264が特定のベクトルフレンドリ命令フォーマット300における1ビットのフィールドとして示される一方、本発明はこれに限定されるものでないすなわち、汎用的ベクトルフレンドリ命令フォーマット200は、データ要素幅フィールド264の他のサイズを想定する。フォーマット-図3汎用的ベクトルフレンドリ命令フォーマット200は、図3Aに示される順序により後述される以下のフィールドを含む。EVEXプリフィックスバイト0~3EVEXプリフィックス302は4バイト形式に符号化される。フォーマットフィールド240EVEXバイト0,ビット[7:0]-第1バイトEVEXバイト0はフォーマットフィールド240であり、それは0×62を含む本発明の一実施例ではベクトルフレンドリ命令フォーマットを区別するのに利用される一意的な値。第2~4バイトEVEXバイト1-3は、特定の能力を提供する複数のビットフィールドを含む。REXフィールド305EVEXバイト1、ビット[7-5]は、EVEX.RビットフィールドEVEXバイト1、ビット[7]-R、EVEX.XビットフィールドEVEXバイト1、ビット[6]-X及び257BEXバイト1、ビット[5]―Bから構成される。EVEX.R、EVEX.X及びEVEX.Bビットフィールドは、対応するVEXビットと同じ機能を提供し、1の補完形式を利用して符号化され、すなわち、ZMM0は1111Bと符号化され、ZMM15は0000Bと符号化される。命令の他のフィールドは、Rrrr、Xxxx及びBbbbがEVEX.R、EVEX.X及びEVEX.Bを加えることによって形成されるように、当該分野で知られるようにレジスタインデックスの下位の3ビットを符号化するrrr、xxx及びbbb。REX’フィールド310-これはREX’フィールド310の最初の部分であり、拡張された32レジスタセットの上位16又は下位16を符号化するのに利用されるEVEX.R’ビットフィールドEVEXバイト1、ビット[4]-R’である。本発明の一実施例では、当該ビットは、後述されるような他のビットと共に、BOUND命令と区別するためビット反転フォーマットにより格納され周知のx86の32ビットモードによる、そのリアルオペコードバイトは62であるが、MODフィールドの11の値をMODR/Mフィールド後述されるを受け付けない。本発明の他の実施例は、当該ビット及び他の指摘されたビットを反転形式により格納しない。1の値は下位の16レジスタを符号化するのに利用される。すなわち、R’Rrrrは、EVEX.R’、EVEX.R及び他のRRRと他のフィールドとを合成することによって形成される。オペコードマップフィールド315EVEXバイト1、ビット[3:0]-mmmm-それのコンテンツは、暗示されたリーディングオペコードバイト0F、0F38又は0F3Aを符号化する。データ要素幅フィールド264EVEXバイト2、ビット[7]-Wは、EVEX.Wという記号により表現される。EVEX.Wは、データタイプの粒度サイズを規定するのに利用される32ビットデータ要素又は64ビットデータ要素。EVEX.vvvv320EVEXバイト2、ビット[6:3]-vvvv-EVEX.vvvvの役割は、1EVEX.vvvvは、反転1の補完形式により指定された第1ソースレジスタオペランドを符号化し、2以上のソースオペランドを有する命令について有効であり、2EVEX.vvvvは、特定のベクトルシフトについて1の補完形式により指定されたデスティネーションレジスタオペランドを符号化し、又は3EVEX.vvvvは、オペランドを符号化せず、当該フィールドはリザーブされ、1111bを含むべくであることを含むものであってもよい。従って、EVEX.vvvvフィールド320は、反転1の補完形式により格納されている第1ソースレジスタ指定子の4つの下位ビットを符号化する。命令に依存して、さらなる異なるEVEXビットフィールドが、指定子のサイズを32レジスタに拡張するのに利用される。EVEX.U268クラスフィールドEVEXバイト2、ビット[2]-U-EVEX.U=0である場合、それはクラスA又はEVEX.U0を示し、EVEX.U=1である場合、それはクラスB又はEVEX.U1を示す。プリフィックス符号化フィールド325EVEXバイト2、ビット[1:0]-ppは、ベース処理フィールドについて追加的なビットを提供する。EVEXプリフィックスフォーマットによる従来のSSE命令のサポートを提供するのに加えて、これはまたSIMDプリフィックスをコンパクト化する効果を有するSIMDプリフィックスを表現するためバイトを要求するのでなく、EVEXプリフィックスは2ビットしか要求しない。一実施例では、従来のフォーマットとEVEXプリフィックスフォーマットとの双方によるSIMDプリフィックス66H、F2H、F3Hを利用する従来のSSE命令をサポートするため、これらの従来のSIMDプリフィックスはSIMDプリフィックス符号化フィールドに符号化され、デコーダのPLAに提供される前にランタイム時に従来のSIMDプリフィックスに拡張される従って、PLAは変更なくこれらの従来の命令の従来のフォーマットとEVEXフォーマットとの双方を実行可能である。より新たな命令はオペコードの拡張としてEVEXプリフィックス符号化フィールドのコンテンツを直接利用可能であるが、特定の実施例は整合性のため同様の方法により拡張するが、これら従来のSIMDプリフィックスにより異なる意味が指定されることを可能にする。他の実施例は、2ビットのSIMDプリフィックス符号化をサポートするようPLAを再設計してもよいが、当該拡張を要求しない。アルファフィールド252EVEXバイト3、ビット[7]-EH、EVEX.EH、EVEX.rs、EVEX.RL、EVEXライトマスク制御及びEVEX.Nとしても知られ、αにより示される-上述されるように、当該フィールドはコンテクストに固有のものである。以降において追加的な説明が与えられる。ベータフィールド254EVEXバイト3、ビット[6:4]-SSS、EVEX.s2-0、EVEX.r2-0、EVEX.rr1、EVEX.LL0、EVEX.LLBとしても知られ、βββにより示される-上述されるように、当該フィールドはコンテクストに固有のものである。以降において追加的な説明が与えられる。REX’フィールド310-これは、REX’フィールドの残りであり、拡張された32レジスタセットの上位16又は下位16を符号化するのに利用可能なEVEX.V’ビットフィールドEVEXバイト3、ビット[3]-V’である。当該ビットは、ビット反転形式により格納される。1の値が、下位16レジスタを符号化するのに利用される。すなわち、V’VVVVが、EVEX.V’、EVEX.vvvvを合成することによって構成される。ライトマスクフィールド270EVEXバイト3、ビット[2:0]-kkk-それのコンテンツは、上述されたようなライトマスクレジスタにおいてレジスタのインデックスを指定する。本発明の一実施例では、特定の値EVEX.kkk=000は、特定の命令に対してライトマスクが利用されないことを意味する特別な動作を有するこれは、マスキングハードウェアをバイパスするハードウェア又はすべて1に配線化されたライトマスクの利用を含む各種方法により実現されてもよい。リアルオペコードフィールド330バイト4これはまた、オペコードバイトとして知られる。オペコードの一部は当該フィールドにおいて指定される。MODR/Mフィールド340バイト5モディファイアフィールド246MODR/M.MOD、ビット[7-6]-MODフィールド342-上述されるように、MODフィールド342のコンテンツは、メモリアクセス処理と非メモリアクセス処理とを区別する。当該フィールドは、さらに後述される。MODR/M.regフィールド344、ビット[5-3]-ModR/M.regフィールドの役割は、2つの状況に要約できる。ModR/M.regは、デスティネーションレジスタオペランド又はソースレジスタオペランドを符号化するか、又はModR/M.regは、オペコードの拡張として扱われ、命令オペランドを符号化するのに利用されない。MODR/M.r/mフィールド346,ビット[2-0]-ModR/M.r/mフィールドの役割は、ModR/M.r/mがメモリアドレスを参照する命令オペランドを符号化するか、又はModR/M.r/mは、デスティネーションレジスタオペランド又はソースレジスタオペランドを符号化する。スケール、インデックス、ベースSIBバイトバイト6スケールフィールド260SIB.SS、bit6と[7-6]-上述されるように、スケールフィールド260のコンテンツは、メモリアドレス生成に利用される。当該フィールドは、さらに後述される。SIB.xxx354ビット[5-3]及びSIB.bbb356ビット[2-0]-これらのフィールドのコンテンツは、レジスタインデックスXxxx及びBbbbに関して上述された。ディスプレースメントバイトバイト7又はバイト7~10ディスプレースメントフィールド262Aバイト7-10-MODフィールド342が10を有するとき、バイト7-10はディスプレースメントフィールド22Aであり、それは従来の32ビットディスプレースメントと同様に機能しdisp32、バイト粒度により機能する。ディスプレースメントファクタフィールド262Bバイト7-MODフィールド342が01を有するとき、バイト7はディスプレースメントファクタフィールド262Bである。当該フィールドの位置は、バイト粒度で機能する従来のx86命令セットの8ビットディスプレースメントと同じである。disp8は符号拡張されているため、それは-128~127バイトオフセットの間のみをアドレス指定でき、64バイトキャッシュラインに関して、disp8は、-128、-64、0及び64の実際に有用な4つの値のみに設定可能な8ビットを利用する。より大きなレンジがしばしば必要とされるため、disp32が利用されるが、disp32は4バイトしか必要としない。disp8及びdisp32と対照的に、ディスプレースメントファクタフィールド262Bは、disp8の再解釈であり、ディスプレースメントファクタフィールド262Bを利用するとき、実際のディスプレースメントは、メモリオペランドアクセスのサイズNと乗算されるディスプレースメントファクタフィールドのコンテンツにより決定される。このタイプのディスプレースメントは、disp8Nとして参照される。これは、平均的な命令長を減少させるはるかに大きなレンジによりディスプレースメントのため利用される単一のバイト。このような圧縮されたディスプレースメントは、有効なディスプレースメントがメモリアクセスの粒度の乗数であるという仮定に基づくものであり、アドレスオフセットの冗長な下位ビットは符号化される必要はない。すなわち、ディスプレースメントファクタフィールド262Bは、従来のx86命令セットの8ビットディスプレースメントを置換する。従って、ディスプレースメントファクタフィールド262Bは、disp8がdisp8Nにオーバロードされるという例外のみによって、x86命令セットの8ビットディスプレースメントと同様に符号化されるModRM/SIB符号化ルールの変更はない。すなわち、符号化ルール又は符号化長の変更はないが、ハードウェアによるディスプレースメント値の解釈のみの変更となるバイト単位のアドレスオフセットを取得するため、メモリオペランドのサイズによりディスプレースメントをスケーリングすることを必要とする。即値Immediate即値フィールド272は上述されたように機能する。フルオペコードフィールド-図3B図3Bは、本発明の一実施例によるフルオペコードフィールド274を構成する特定のベクトルフレンドリ命令フォーマット300のフィールドを示すブロック図である。具体的には、フルオペコードフィールド274は、フォーマットフィールド240、ベース処理フィールド242及びデータ要素幅Wフィールド264を有する。ベース処理フィールド242は、プリフィックス符号化フィールド325、オペコードマップフィールド315及びリアルオペコードフィールド330を有する。レジスタインデックスフィールド-図3C図3Cは、本発明の一実施例によるレジスタインデックスフィールド244を構成する特定のベクトルフレンドリ命令フォーマット300のフィールドを示すブロック図である。具体的には、レジスタインデックスフィールド244は、REXフィールド305、REX’フィールド310、MODR/M.regフィールド344、MODR/M.r/mフィールド346、VVVVフィールド320、xxxフィールド354及びbbbフィールド356を有する。拡張処理フィールド-図3D図3Dは、本発明の一実施例による拡張処理フィールド250を構成する特定のベクトルフレンドリ命令フォーマット300のフィールドを示すブロック図である。クラスUフィールド268が0を有するとき、それはEVEX.U0クラスA268Aを示し、それは1を有するとき、それはEVEX.U1クラスB268Bを示す。U=0及びMODフィールド342が11を有するとき非メモリアクセス処理を示す、アルファフィールド252EVEXバイト3、ビット[7]―EHはrsフィールド252Aとして解釈される。rsフィールド252Aが1を有するときラウンド252A.1、ベータフィールド254EVEXバイト3、ビット[6:4]-SSSはラウンド制御フィールド254Aとして解釈される。ラウンド制御フィールド254Aは、1ビットのSAEフィールド256と2ビットのラウンド処理フィールド258とを有する。rsフィールド252Aが0を有するときデータ変換252A,ベータフィールド254EVEXバイト3、ビット[6:4]-SSSは、3ビットデータ変換フィールド254Bとして解釈される。U=0及びMODフィールド342が00、01又は10メモリアクセス処理を示すを有するとき、アルファフィールド252EVEXバイト3、ビット[7]-EHはイビクションヒント‘EHフィールド252Bとして解釈され、ベータフィールド254EVEXバイト3、ビット[6:4]-SSSは3ビットデータ操作フィールド254Cとして解釈される。U=1であるとき、アルファフィールド252EVEXバイト3、ビット[7]-EHはライトマスク制御Zフィールド252Cとして解釈される。U=1及びMODフィールド342が11非メモリアクセス処理を示すを有するとき、ベータフィールド254の一部EVEXバイト3、ビット[4]-S0はRLフィールド257Aとして解釈され、それが1を有するときラウンド257A.1、ベータフィールド254の残りEVEXバイト3、ビット[6-5]-S2-1はラウンド処理フィールド259Aとして解釈され、RLフィールド257Aが0VSIZE257.A2を有するとき、ベータフィールド254の残りEVEXバイト3、ビット[6-5]-S2-1はベクトル長フィールド259BEVEXバイト3、ビット[6-5]-L1-0として解釈される。U=1及びMODフィールド342が00、01又は10メモリアクセス処理を示すを有するとき、ベータフィールド254EVEXバイト3、ビット[6:4]-SSSは、ベクトル長フィールド259BEVEXバイト3、ビット[6-5]-L1-0及びブロードキャストフィールド257BEVEXバイト3、ビット[4]-Bとして解釈される。いくつかの追加的なポイントベクトルフォーマットは、レジスタの個数を32REX’に拡張する。非破壊的ソースレジスタ符号化3及び4オペランドシンタックスに適用可能:これは、命令シンタックスにおける最初のソースオペランドである。それはEVEX.vvvvの表記によって表現される。当該フィールドは、1の補完形式反転形式を用いて符号化され、すなわち、ZMM0は1111Bとして符号化され、ZMM15は0000Bとして符号化される。EVEXの追加的なビットフィールドはソースを32レジスタに拡張するのに必要とされることに留意されたい。EVEX.Wは、ある命令についてデータタイプサイズ32ビット又は64ビットを定義する。32拡張レジスタセット符号化:EVEXプリフィックスは、以下の専用のビットフィールド、すなわち、EVEX.R’及びEVEX.V’レジスタレジスタフォーマットのEVEX.Xと共にによりソース単位で32レジスタを符号化するための追加的なビットフィールドを提供する。SIMDプリフィックスのコンパクト化:従来のSSE命令は、オペコード拡張bフィールドとしてSIMDプリフィックス66H、F2H、F3Hを効果的に利用する。EVEXプリフィックス符号化は、512ビットベクトル長を利用して従来のSSE命令の機能的能力を可能にする。2バイト及び3バイトオペコードのコンパクト化:最近紹介された従来のSSE命令は、2バイト及び3バイトオペコードを利用する。1又は2のリーディングバイトは、0FH及び0FH3AH/0FH38Hである。1バイトエスケープ0FH及び2バイトエスケープ0FH3AH,0FH38Hがまた、オペコード拡張フィールドとして解釈できる。EVEX.mmmフィールドは、多数の従来の命令が一定バイトのシーケンス0FH、0FH3AH、0FH38Hなしに符号化されることを可能にするためのコンパクト化を提供する。[ベクトルフレンドリ命令フォーマットのフィールドの一部の相互関係を示す例示的なフロー図-図4A~4E]図4A~4Dは、本発明の一実施例によるベクトルフレンドリ命令フォーマットのフィールドの一部の相互関係を示すフロー図を示し、図4Eは、本発明の一実施例によるブロック415A~Hのそれぞれの分解図である。ブロック400において、初期的なフィールド値がベクトルフレンドリ命令フォーマット0x62などを示しているか判断される。初期的なフィールド値がベクトルフレンドリ命令フォーマットを示していない場合、制御はブロック402に移行し、当該命令は命令セットの他のフォーマットの1つに従って処理される。初期的なフィールド値がベクトルフレンドリ命令フォーマットを示している場合、制御はブロック492に移行する。ブロック492において、クラスUフィールドのコンテンツがクラスA又はクラスB命令テンプレートを示しているか判断される。クラスAのケースでは、制御は2つの別々のブロック404A及び490に移行する。そうでない場合、制御は、サークルBを介し図4Cの2つの別々のブロック404B及び493に移行する。ブロック404Aにおいて、モディファイアフィールドのコンテンツが非メモリアクセス処理又はメモリアクセス処理を示しているか判断される。非メモリアクセス処理MODフィールド342=11などのケースでは、制御はブロック406及び408に移行する。メモリアクセス処理MODフィールド342=00、01又は10などのケースでは、制御はサークルAを介し図4B上のブロック422、430及び440Aのそれぞれに移行する。アルファフィールド252とラベル付けされたラウンド化されたコーナーボックスは、アルファフィールド252の異なる解釈を表現するため、ブロック408及び422を含む。具体的には、ブロック408はアルファフィールド252の解釈をrsフィールド252Aとして表現する一方、ブロック422はアルファ252の解釈をイビクションヒントフィールド252Bとして表現する。ブロック406において、レジスタインデックスフィールド244のコンテンツは、図6Aに示されるように利用される。ブロック408において、rsフィールド252Aのコンテンツがラウンドタイプ処理rsフィールド252A=1など又はデータ変換タイプ処理rsフィールド252A=0などを示すか判断される。前者では、制御はブロック410、412A及び414のそれぞれに移行する。後者のケースでは、制御はブロック416に移行する。ベータラウンド制御フィールド254Aとラベル付けされたラウンド化されたコーナーボックスは、ブロック410及び412Aを含む。ブロック410はSAEフィールド256のコンテンツに関する判定を示し浮動小数点例外を抑制するか否か、ブロック412Aはラウンド処理フィールド258のコンテンツに基づく判定を示す可能なラウンド化処理のグループの1つを区別。ブロック410及び412Aにおいて行われる判定が、図7Aに示される。ブロック414、416、442、448、454、460、468及び474はすべて、データ要素幅wフィールド264のコンテンツに関する判定を示す。図4に示されるように、データ要素幅フィールド264は、図3Aの特定のベクトルフレンドリ命令フォーマット300における1ビットフィールドである。また、これらのブロックは、データ要素幅が64ビット1など又は32ビット0などであるか判定する。ブロック414に関して、当該判定はフローの当該ブランチのエンドをマーク付けする。他方、制御は64ビットデータ要素幅と32ビットデータ要素幅とについてそれぞれブロック416からブロック418又は420に移行する。ベータデータ変換フィールド254Bとラベル付けされたラウンド化されたコーナーボックスは、ブロック418と420との双方を含み、ベータフィールド254がデータ変換フィールド254Bとして解釈されるケースを表す。ブロック418及び420において、データ変換フィールド254Bのコンテンツが、複数のデータ変換処理の何れが実行されるべきか区別するのに利用される。ブロック418、420の可能なデータ変換処理のグループはそれぞれ、図8A及び8Bに示される。ブロック422において、イビクションヒントフィールド252Bのコンテンツは、可能なイビクションヒントオプションのグループの何れが利用されるべきか区別するのに利用される。図4は、特定のベクトルフレンドリ命令フォーマット300からの1ビットイビクションヒントフィー0ルド252Bの利用を示す。具体的には、イビクションヒントオプションは、非一時的1及び一時的0である。これは、フロー図の当該ブランチのエンドをマーク付けする。ブロック430において、図6Bに示されるように、レジスタインデックスフィールド244、スケールフィールド260及びディスプレースメントフィールド262A又はディスプレースメントファクタフィールド262Bのコンテンツが利用される。ブロック440Aにおいて、ベース処理フィールド242のコンテンツが、異なるメモリアクセス処理のグループの何れが実行されるべきか区別するのに利用される。以下のテーブルは、本発明の一実施例によるサポートされたメモリアクセス処理のグループと共に、それぞれのブロック440Aからの制御フローを示す。本発明の他の実施例は、より多く、より少ない又は異なるメモリアクセス処理をサポートしてもよい。上述されるように、ブロック442、448、454、460、468、474は、データ要素幅に基づき制御フローの変更を決定する。制御フローは以下のテーブルに示される。同様に、ブロック480、482及び484の判定が、図15A、15B及び15Cにそれぞれ示される。ベータデータ操作フィールド254Cにラベル付けされたラウンド化されたコーナーボックスは、ブロック444A、446A、450A、452A、456、458、462、464、470、472、476、478、480、482、484を含み、これにより、データ操作フィールド254Cのコンテンツは可能なデータ操作処理のグループの何れが実行されるべきか区別することを示す。ブロック490において、ライトマスクkフィールド270のコンテンツとデータ要素幅wフィールド264のコンテンツとは、当該処理に使用するライトマスクを決定するのに利用される。図4は、8つのライトマスクレジスタがあって、レジスタ000はライトマスクが利用されるべきでないことを示す実施例を示す。ライトマスクフィールド270のコンテンツが000以外を示す場合、制御は図16A~Dに移行する。ブロック404Bにおいて、モディファイアフィールドのコンテンツが非メモリアクセス処理又はメモリアクセス処理を示すか判断される。非メモリアクセス処理のケースではMODフィールド342=11など、制御はブロック406図4AのサークルEを介し及び495に移行する。メモリアクセス処理のケースではMODフィールド342=00、01又は10など、制御はブロック498、430図4AのサークルDを介し及び440B図4DのサークルC7を介し。ベータフィールド254のラウンド化されたコーナーボックスの一部は、ベータフィールド254の一部の異なる解釈を表すため、ブロック495、412B及び498を含む。具体的には、ブロック495は、RLフィールド257Aとしてベータフィールド254の解釈の一部を表し、図4Dのラウンド化されたコーナーボックスによりラベル付けされたブロードキャストフィールド257Bは、ブロードキャストフィールド257Bとしてベータフィールド254の当該部分の解釈を表す。ブロック495において、RLフィールド257Aのコンテンツはラウンドタイプ処理例えば、RLフィールド257A=1又はベクトル長タイプ処理例えば、RLフィールド257=0を示す。前者では、制御はブロック412B及び415Aのそれぞれに移行する。後者のケースでは、制御はブロック498及び415Bのそれぞれに移行する。ブロック412Bは、ラウンド処理フィールド259Bのコンテンツに基づく判定を示す可能なラウンド化処理のグループの1つを示す。ブロック412Bにおいて行われる判定が、図7Bに示される。ブロック415A~Hは、処理対象のデータ要素の幅に関する判定を示す。図示されるように、クラスBのサポートされるデータ要素U=1のときは64ビット、32ビット、16ビット及び8ビットである。これらのブロックを実行する例示的な方法が、図4Eを参照して後述される。ブロック415A~Bはそれぞれフロー図のブランチのエンドをマーク付けする。図の415Aに関して、16ビット及び8ビットのデータ要素幅へのラインは、本発明の一実施例では、これらがサポートされていないため破線により示される。16ビット又は8ビットデータ要素に対して実行されるクラスBの非メモリアクセスタイプ処理がある場合、RLフィールド257Aのコンテンツは0であると予想され、ブロック495からブロック415B及び498に制御を移行させるすなわち、パーシャルラウンド化は利用可能でない。ブロック498において、ベクトル長LLフィールド268のコンテンツは、処理対象のベクトルのサイズを決定するのに利用される。図4は、1128ビット00、2256ビット01、512ビット10がサポートされる実施例を示す。ただし、11はリザーブされる。リザーブされた11は、本発明の異なる実施例について又は異なるタイプの処理について異なる目的のため利用されてもよい。例えば、11は、11024ビットのベクトル長を示すか、2ダイナミックベクトル長レジスタが利用されるべきであることを示すのに利用可能である。異なる実施例は、プログラムにより可読及び書き込み可能なベクトル長を符号化するのに利用される特別なレジスタを含む、ダイナミックベクトル長レジスタを異なって実現してもよい。ダイナミックベクトル長レジスタは、命令のベクトル長に利用される値を格納する。異なる実施例はダイナミックベクトル長レジスタを介し複数の異なるベクトル長をサポートしてもよいが、本発明の一実施例は、128ビットの倍数128、256、512、1024、2048、...などをサポートする。ダイナミックベクトル長レジスタとして機能する1以上のレジスタのセットがある場合、本発明の異なる実施例は、異なる技術命令のタイプなどに基づくを利用してこれらのレジスタから選択してもよい。ブロック440Bにおいて、ベース処理フィールド242のコンテンツは、異なるメモリアクセス処理のグループの何れが実行されるべきか示すのに利用される。以下のテーブルは、本発明の一実施例によるサポートされたメモリアクセス処理グループと共に、それぞれについてブロック440Bからの制御フローを示す。本発明の他の実施例は、より多く、より少なく又は異なるメモリアクセス処理をサポートしてもよい。上述されるように、ブロック415C~Hは、データ要素幅に基づく制御フローの変化を決定し、制御フローが以下のテーブルに示される。ラウンド化されたコーナーボックスによりラベル付けされたブロードキャストフィールド257Bは、ブロック444B、446B、450B及び452Bを含む。これにより、ブロードキャストフィールド257Bのコンテンツは、ブロードキャスト処理が実行されるべきか区別することを示す。図示されるように、本発明の一実施例は、ブロードキャストbフィールド257Bのコンテンツがブロードキャスト処理が64ビット及び32ビットのデータ要素幅について実行されるべきか選択することを可能にする。それは、16ビット及び8ビットデータ要素幅のオプションではない。むしろ、16ビット又は8ビットデータ要素に対して実行されるクラスBのメモリアクセスタイプ処理がある場合、ブロードキャストBフィールド257Bのコンテンツは0であると予想される。ブロック493において、アルファフィールド252ライトマスク制御Zフィールド252Cのコンテンツ、ライトマスクkフィールド270のコンテンツ及びデータ要素幅の判定が、実行すべきライトマスク処理マージング又はゼロ化と処理に利用されるべきライトマスクとを決定するのに利用される。本発明のいくつかの実施例では、アルファフィールド252ライトマスク制御Zフィールド252Cは、ストアを実行するメモリアクセス処理に対してゼロになるよう予想されるゼロマスキングのため。データ要素幅の判定は、ブロック415と同じように実行される。図4は、8つのライトマスクレジスタがあって、ライトマスクが利用されるべきでないことをレジスタ000が示す実施例を示す。ライトマスクフィールド270のコンテンツが000以外を示す場合、制御は図16D~Eに移行する。図4Eは、本発明の一実施例によるブロック415A~Hのぞれぞれの分解図である。具体的には、ブロック415A~Hのそれぞれのフローを示す1つのフロー415が示される。ブロック417Aにおいて、リードオペコードフィールド330のコンテンツの一部又はすべてが、第1セット417A.164ビットと32ビットなどを含むと第2セット417A.216ビットと8ビットなどとの2つのデータ要素幅のセットの間で選択するのに利用される。データ要素幅が、ブロック417Bに示されるようなデータ要素幅wフィールド264に基づき第1セット417A.1について決定される一方、第2セット471A.2内には、データ要素幅417A.2.1リアルオペコードフィールド330のみに基づく及び417A.2.2ブロック417Cに示されるようなデータ要素幅wフィールド264に基づくを決定する2つの方法がある。図4に示されるように、データ要素幅フィールド264は、図3Aの特定のベクトルフレンドリ命令フォーマット300における1ビットフィールドである。また、これらのブロック417Bは、データ要素幅が64ビット1など又は32ビット0などであるか決定し、ブロック417Cは、データ要素幅が16ビット1など又は8ビット0などであるか決定する。図4Eはデータ要素幅を決定する際にリアルオペコードフィールド417Aの関与を示すが、他の実施例は、wフィールドのみを利用するため実現されてもよい1ビットのwフィールドを有し、2つのみのデータ要素サイズをサポートし、2ビットのwフィールドを有し、4つのデータ要素サイズをサポートするなど本発明の実施例が図4を参照して説明されたが、他の実施例は異なるフローを利用してもよい。例えば、ブロック480、482及び484により示されるように、1つのみのデータ要素幅をサポートする処理はデータ要素幅の判定を有する必要はなくブロック442Aなど、2つのベータフィールド判定を必要としないブロック444A及び446Aなど。他の実施例は、これらすべての処理について1つのデータ要素のみをサポートし、すべてのタイプの処理に対して双方のデータ要素幅をサポートしてもよくロードグラフィック、ロードPackedグラフィック及びストアグラフィック処理に対するデータ要素幅及び追加的なベータフィールド判定を要求する、又はその他の処理のいくつかに対する異なるデータ要素幅をサポートしない例えば、ロード/op処理について異なるデータ要素幅をサポートしないなど。同様に、他の実施例は、非メモリアクセスラウンドタイプ処理及び非メモリアクセスデータ変換タイプ処理の1以上に対して異なるデータ要素幅をサポートしなくてもよい。前者では、ブロック414及び415Aは存在せず、後者では、ブロック415Bは存在しないが、ブロック416は存在せず、ブロック418及び420はマージされる。他の例として、本発明の異なる実施例は、クラスUフィールド268を含まず、クラスA又はB命令テンプレートの一方しかサポートせず、SAEフィールド256を含むが、ラウンド処理フィールド258を含まず、ラウンド処理フィールド259Aを含まず、イビクションヒットフィールド252Bを含まず、クラスA及びB命令テンプレートの一方又は双方にラウンドタイプ処理を含まず、データ変換タイプ処理を含まず、非メモリアクセス205及びメモリアクセス220の一方又は双方にベクトル長フィールド259Bを含まず、ロード/op及びロード処理の一方又は他方のみをサポートし、マスクライトフィールド270を含まず、ライトマスク制御Zフィールド252Cを含まず、及び/又はベクトル長フィールド268を含まなくてもよい。例示的なレジスタアーキテクチャ-図5図5は、本発明の一実施例によるレジスタアーキテクチャ500のブロック図である。レジスタアーキテクチャのレジスタファイルファイル及びレジスタが以下に列記される。ベクトルレジスタファイル510-図示された実施例では、512ビット幅の32このベクトルレジスタがあり、これらのレジスタはzmm0~zmm31として参照される。下位の16このzmmレジスタの下位の256ビットはレジスタymm0~16にオーバレイされる。下位の16個のzmmレジスタの下位の128ビットymmレジスタの下位の128ビットは、レジスタxmm0~15にオーバレイされる。特定のベクトルフレンドリ命令フォーマット300は、以下のテーブルに示されるようなオーバレイされたレジスタに対して実行される。すなわち、ベクトル長フィールド259Bは、最大長と1以上の他のより短い長さとの間で選択する。このようなより短い各長さは先行する長さの1/2であり、ベクトル長フィールド259Bのない命令テンプレートは最大ベクトル長に対して実行される。さらに、一実施例では、特定のベクトルフレンドリ命令フォーマット300のクラスBの命令テンプレートが、Packed又はスカラシングル/ダブル精度浮動小数点データ及びPacked又はスカラ整数データに対して実行される。スカラ処理は、zmm/ymm/xmmレジスタにおける下位のデータ要素位置に対して実行される処理であり、上位のデータ要素位置は、命令前と同様に左方にあるか、実施例に応じてゼロ化される。ライトマスクレジスタ515-図示された実施例では、それぞれが64ビットのサイズの8つのライトマスクレジスタk0~k7がある。上述されたように、本発明の一実施例では、ベクトルマスクレジスタk0はライトマスクとして利用できず、k0がライトマスクに利用されることを符号化が通常示すとき、それは0xFFFFの配線化されたライトマスクを選択し、当該命令のライトマスキングを有効に不可にする。マルチメディア拡張制御ステータスレジスタMXCSR520-図示された実施例では、当該32ビットレジスタは、浮動小数点処理において利用される7ステータス及び制御ビットを提供する。汎用レジスタ525-図示された実施例では、メモリオペランドをアドレッシングするため既存のx86アドレッシングモードと共に利用される16個の64ビットの汎用レジスタがある。これらのレジスタは、RAX、RBX、RCX、RDX、RBP、RSI、RDI、RSP及びR8~R15の名称によって参照される。拡張フラグEFLAGSレジスタ530-図示された実施例では、当該32ビットレジスタが、多数の命令の結果を記録するのに利用される。浮動小数点制御ワードFCWレジスタ535及び浮動小数点ステータスワードFSWレジスタ540-図示された実施例では、これらのレジスタは、FCWのケースではラウンド化モード、例外マスク及びフラグを設定し、FSWのケースでは例外を追跡するため、x87命令セット拡張により利用される。MMXPacked整数フラットレジスタファイル550にエイリアシングされるスカラ浮動小数点スタックレジスタファイルx87スタック545-図示された実施例では、x87スタックは、x87命令セット拡張を利用して32/64/80ビット浮動小数点データに対してスカラ浮動小数点処理を実行するのに利用される8要素スタックであり、MMXレジスタは、64ビットPacked整数データに対して処理を実行すると共に、MMXとXMMレジスタとの間で実行される処理についてオペランドを保持するのに利用される。セグメントレジスタ555-図示された実施例では、セグメント化されたアドレス生成について利用されるデータをストアするための6つの16ビットレジスタがある。RIPレジスタ565-図示された実施例では、当該64ビットレジスタは命令ポインタを格納する。本発明の他の実施例は、より広い又はより狭いレジスタを利用してもよい。さらに、本発明の他の実施例は、より多く、より少なく又は異なるレジスタファイル及びレジスタを利用してもよい。[レジスタインデックスフィールド、スケールフィールド、ディスプレースメントフィールド、及びディスプレースメントファクタフィールドフロー-図6A~6C]モディファイアフィールド=非メモリアクセス-図6A図6Aは、本発明の実施例による非メモリアクセスタイプ処理のためのレジスタインデックスフィールド244のフロー図である。図6Aは、modフィールド342=11に従ってレジスタ間のアドレッシングが実行中であることを示す楕円600からスタートする。ブロック600から、制御はブロック605に移行する。ブロック605において、レジスタをアドレッシングするため、レジスタインデックスフィールド244からビットが選択される。特定のベクトルフレンドリ命令フォーマット300に関して、拡張を有する既存のx86命令セットは、REXフィールド305、regフィールド344、r/mフィールド346、VVVVフィールド320、xxxフィールド354及びbbbフィールド356に基づき広範な異なるレジスタアドレッシングオプションを可能にする。REX’フィールド310は、これらのオプションを拡張する。ブロック605から、制御はブロック610に移行する。ブロック610において、レジスタAが選択されzmm20など、制御はブロック615に移行する。ブロック615において、レジスタBが選択されzmm5など、制御は任意的にブロック620に移行する。ブロック620において、レジスタCが選択されるzmm7など。レジスタAはソースオペランドレジスタであってもよく、レジスタBはソースオペランドレジスタ、デスティネーションオペランドレジスタ又はソース/デスティネーションオペランドレジスタであってもよく、レジスタCは、ソースオペランドレジスタ、デスティネーションオペランドレジスタ又はソース/デスティネーションオペランドであってもよい。モディファイアフィールド=メモリアクセス-図6B図6Bは、本発明の実施例によるメモリアクセスタイプ処理のためのレジスタインデックスフィールド244、スケールフィールド260、ディスプレースメントフィールド262A及びディスプレースメントファクタフィールド262Bの利用を示すフロー図である。図6Bは、レジスタメモリ間のアドレッシングを示す楕円630から始まるmodフィールド342=00、01又は10。630から、制御はブロック635に移行する。ブロック635において、レジスタをアドレッシングするためのビットがレジスタインデックスフィールドから選択され、制御はブロック640に移行する。ブロック640において、レジスタAが選択されzmm20など、制御は任意的にはブロック645に移行する。ブロック645において、レジスタBが選択されzmm31など、制御はブロック650に移行する。ブロック645が利用されないケースでは、制御はブロック6407からブロック650に直接移行する。ブロック650において、REXフィールド305、REX’フィールド310、modr/mフィールド340、SIBバイト350及びディスプレースメントフィールド262A又はディスプレースメントファクタフィールド262Bのコンテンツが、メモリをアドレッシングするのに利用される。具体的には、インデックス及びベースが、REXフィールド305及びSIBバイト350からプルされ、スケールフィールド260ssフィールド352のコンテンツが、SIBバイト350からプルされる。ブロック650から、制御はブロック660に移行する。ブロック660において、メモリアクセスモードが決定されるmodフィールド342のコンテンツなどに基づき。メモリアクセスモードが非ディスプレースメントモードである場合modフィールド342=00、制御は、アドレスが2ssインデックスベースとなるように生成されるブロック665に移行する。メモリアクセスモードが非スケール化ディスプレースメントモードである場合modフィールド342=10、制御は、アドレスが2ssインデックスベースdisp32のように生成されるブロック670に移行する。メモリアクセスモードがスケール化ディスプレースメントモードである場合modフィールド342=01、制御は、アドレスが2ssインデックスベーススケール化ディスプレースメントのように生成されるブロック675に移行し、スケール化ディスプレースメントdisp8n=ディスプレースメントファクタフィールド262BとメモリアクセスサイズNとの乗算のコンテンツであり、Nはフルオペコードフィールド274ベース処理フィールド及び/又はデータ要素幅フィールド及び拡張処理フィールド250クラスフィールド268及びデータ操作フィールド254C、ベクトル長フィールド259B及び/又はブロードキャストフィールド257Bなどのコンテンツに依存する。スケール化ディスプレースメント-図6C図6Cは、本発明の実施例によるdisp8、disp32及びスケール化ディスプレースメントの変形の間の相違を示すテーブルである。テーブルのカラムは、1バイトでインクリメントされるアドレスを示すバイト、2-128~127をストアするのに利用される1バイトフィールドであるdisp8フィールド、3-231~231-1をストアするのに利用される4バイトフィールドであるdisp32フィールド、4-128~127をストアするのに利用される1バイトフィールドであるdisp32Nフィールドであり、当該カラムはN=1、N=2及びN=64のサブカラムを有する。バイトカラムのローの値はカラムの下方に増加する。第2カラム、第3カラム及び各サブカラムは、当該フィールドにより生成可能なアドレスのローにおける黒色のサークルを含む。disp8フィールド及びdisp32フィールドが、N=1である場合、当該フィールドがバイトの粒度によりインクリメントすることを示すそれらのレンジによって、すべてのバイトについて黒色のドットを有することは注目すべきである。他方、N=2のカラムは、2バイトだけインクリメントし、従ってそれのレンジ内の1つおきのバイトについて黒色のドットしか有さず、また、それはdisp8フィールドと比較してより広いレンジとより粗い粒度とを有する一方、同時にそれはdisp32フィールドのバイトの1/4しか必要としない。N=64のカラムは、64バイトだけインクリメントし、従ってそれのレンジ内で64バイト毎に黒色のドットしか有さず、また、それはdisp8フィールドと比較してより広いレンジとより粗い粒度とを有する一方、同時にそれは再びdisp32フィールドの1/4バイトしか必要としない。ラウンド化フィールドテーブル-図7A~B図7Aは、本発明の実施例によるラウンド制御フィールド254Aにより指定されうる可能な処理のグループを示すテーブルである。図7Aは、第1カラムがベータフィールド254の可能なコンテンツを有することを示すラウンド制御フィールド254Aとして機能し、SAEフィールド256及びラウンド処理フィールド258に分割される。同様に、図7Bは、本発明の実施例によるラウンド制御フィールド259Aにより指定されうる可能な処理のグループを示すテーブルである。クラスB命令テンプレートのケースでは、SAEフィールド356はなく、浮動小数点例外抑制が常にアクティブである。いくつかの命令がすでに中間ビットを介しラウンド化モードの指定を静的に可能にする一実施例では、中間ビットはラウンド化モード処理フィールド258及び259Aに対して優先する。データタイプ以下のテーブルは、ここで用いられる例示的なデータタイプをリストするその一部は、Miscrosoft登録商標のDirectX登録商標10に説明されているMicrosoft登録商標、DirectX登録商標、データ変換ルール2010年8月17日を参照。UNORMは、nビット数について、すべて0が0.0fを意味し、すべて1が1.0fを意味することを示す符号なしの正規化された整数を示す。0.0fから1.0fまでの均等に離間した浮動小数値のシーケンスが表され、例えば、2ビットUNORMは0.0f、1/3、2/3及び1.0fを表す。SNORMは、nビット2の補数について、最大値が1.0fを意味し例えば、5ビット値01111は1.0fにマップする、最小値は-1.0fを意味する例えば、5ビット値10000は-1.0fにマップすることを示す符号付き正規化された整数を示す。さらに、第2最小数は-1.0fにマップする例えば、5ビット値10001は-1.0fにマップする。従って、-1.0fについて2つの整数表現がある。0.0fについて1つの表現があり、1.0fについて1つの表現がある。これは、レンジ-1.0f...0.0fにおいて均等に離間した浮動小数値の整数表現のセットをもたらし、また、レンジ0.0f...1.0fにおける数の補完的な表現セットをもたらす。上述されるように、SIMD技術は、レジスタのビットを各データ要素が別個の値を表す複数の固定的/サイズ化されたデータ要素に論理的に分割可能なプロセッサに特に適している。このタイプのデータは、Packedデータタイプ又はベクトルデータタイプと呼ばれ、当該データタイプのオペランドはPackedデータオペランド又はベクトルオペランドと呼ばれる。典型的には、ベクトルオペランドのデータ要素は、同じデータタイプを有し、所与のデータ要素のデータタイプは、データ要素データタイプと呼ばれる。データ要素のすべてのデータ要素データタイプが同じである場合、ベクトルオペランドは当該データタイプを有するとして参照されてもよい。例えば、ベクトルオペランドのデータ要素のすべてが32ビット浮動小数データ要素データタイプを有する場合、ベクトルオペランドは、32ビット浮動小数点ベクトルオペランドと呼ばれる。シングル値データ要素データタイプとマルチ値データ要素データタイプとをサポートする本発明の実施例が説明される。シングル値データ要素データタイプは、各データ要素にシングル値を格納し、本発明のいくつかの実施例において用いられるシングル値データ要素データタイプの具体例は、32ビット浮動小数点、64ビット浮動小数点、32ビット符号なし整数、64ビット符号なし整数、32ビット符号付き整数、及び64ビット符号付き整数である。マルチ値データ要素データタイプは、各データ要素位置に複数の値を有するパケットを格納し、本発明のいくつかの実施例において使用される複数値データ要素データタイプの具体例は、後述されるPackedグラフィックデータ要素データタイプである。UNORM10A10B10C2D:3つのUNORM10値と1つのUNORM2値の32ビットパケットは、32bフィールドの最上位ビットにある最後の2b10bフィールドから始まる例えば、UNORM2D[31-30]フロート10C[29-20]フロート10B[20-10]フロート10A[9-0]、ただし、D~Aはスロット位置を示し、先行する名称/数字はフォーマットを示す。FLOAT11A11B10C:2つのFLOAT11値と1つのFLOAT10値との32ビットパケットは、より上位のビットにある最後を開始する例えば、フロート10C[31-22]フロート11B[21-11]フロート11A[10-0]など。上記のマルチ値データ要素データタイプのパケットの異なる値は異なる個数のビットにより表現され、他の実施例は異なるコンフィギュレーションを有してもよいことに留意すべきである。例えば、異なる個数のビットにより表現される値のより多く、同数のビットにより表される値のすべてなど。シングル値データ要素データタイプとマルチ値データ要素データタイプとの双方をサポートする実施例が説明されたが、他の実施例は一方又は他方をサポートしてもよい。さらに、特定のデータタイプを利用する本発明の実施例が説明されるが、本発明の他の実施例はより多く、より少なく又は異なるデータタイプを利用してもよい。データ変換フィールドテーブル-図8A及び8B図8A~8Bは、本発明の実施例によるデータ変換フィールドにより指定されうる可能なデータ変換処理のグループを示すテーブルである。双方のテーブルの第1カラムは、データ変換フィールド254Bのコンテンツの可能な値を示し、第2カラムはファンクションを示し、第3カラムは利用を示す。データ要素サイズフィールド=64ビット-図8A図8Aは、本発明の実施例によるデータ要素幅が64ビットであるとき、データ変換フィールドにより指定されうる可能なデータ変換処理のグループを示すテーブルである。当該テーブルは、64ビットレジスタスウィズルアップ変換スウィズルプリミティブと呼ばれ、ブロック418の表現である。記号:dcbaはソースにおいて1つの256ビットブロックを形成する64ビット要素を示しaは最下位及びdは最上位、aaaaは、ソースの256ビットブロックの最下位要素がデスティネーションにおける同じ256ビットブロックの4つすべての要素に複製され、図示されたパターンは、そのときソース及びデスティネーションにおいて2つの256ビットブロックについて繰り返されることを意味する。ただし、aは最下位要素であり、hは最上位要素である。しかしながら、各256ビットブロックはレジスタスウィズルについて同じ順列を実行するため、最下位ブロックのみが示される。データ要素サイズフィールド=32ビット-図8B図8Bは、本発明の実施例によるデータ要素幅が32ビットであるときデータ変換フィールドにより指定されうる可能なデータ変換処理のグループを示すテーブルである。当該テーブルは、32ビットレジスタスウィズルアップ変換スウィズルプリミティブと呼ばれ、ブロック420の表現である。記号:dcbaはソースにおいて1つの128ビットブロックを形成する32ビット要素を示しaは最下位及びdは最上位、aaaaは、ソースにおける128ビットブロックの最下位要素がデスティネーションにおける同じ128ビットブロックの4つすべての要素に複製され、図示されたパターンは、このときソース及びデスティネーションにおける4つすべての128ビットブロックについて繰り返される。ponmlkjihgfedcbaはソースレジスタを示すのに利用され、aは最下位要素であり、pは最上位要素である。しかしながら、各128ビットブロックはレジスタスウィズルについて同じ順列を実行するため、最下位ブロックのみが示される。図8Bは、図8A~8Bに示される処理のすべての意味をさらに説明するため2つの例示的な処理を呼び出す。図9において、クロスプロダクトスウィズル815が示され、図10Aにおいて、4要素パケット820におけるブロードキャスト要素が示される。例示的なスウィズル処理-図9図9は、本発明の実施例によるクロスプロダクトスウィズル815を示すブロック図である。図9は、双方が512ビット幅であり、連続する128個のブロックに分割されるパケット位置3-0と呼ばれるソースオペランド900及びデスティネーションオペランド910を示し、各ブロックは4つの32ビットデータ要素に分割される。例えば、ソースオペランド900のパケット位置0のコンテンツはD0C0B0A0であり、デスティネーションオペランド910のパケット位置0のコンテンツはD0A0C0B0である。例示的なブロードキャスト処理-図10A~10C図10Aは、本発明の実施例による4要素パケット820にわたる要素のブロードキャストを示すブロック図である。図10Aは、双方が512ビット幅であり、連続する128個のブロックパケット位置3~0として参照されるに分割されるソースオペランド1000及びデスティネーションオペランド1010を示し、各ブロックは4つの32ビットデータ要素に分割される。例えば、ソースオペランド1000のパケット位置0のコンテンツはD0C0B0A0である一方、デスティネーションオペランド910のパケット位置0のコンテンツはA0A0A0A0であり、ソースオペランド1000のパケット位置1のコンテンツはD1C1B1A1であり、デスティネーションオペランド1010のパケット位置1のコンテンツはA1A1A1A1である。図10Aは非メモリアクセス処理の一例となるブロードキャストであるが、図10B~10Cはメモリアクセス処理のための一例となるブロードキャストである。ソースメモリオペランドは要素の合計数より少なく含むとき、それは有効なソースオペランドの完全数の要素を形成するためブロードキャスト繰り返し可能である32ビット命令について16、64ビット命令について8。これらのタイプのブロードキャスト処理は図12A~12Dにおいて参照される。2つのブロードキャスト粒度がある。ソースメモリオペランドの1要素が、フル16要素有効ソースオペランド32ビット命令についてを形成するため16回ブロードキャストされ、又はフル8要素有効ソースオペランド64ビット命令についてを形成するため8回ブロードキャストされる。図10Bは、本発明の実施例による32ビットデータ要素幅の1の要素粒度のブロードキャストを示すブロック図である。当該処理の具体例は、図12Bにおいて1210によりラベル付けされる。図10Bは、1つの32ビットデータ要素A0を有するメモリをソースとするソースオペランド1020と、512ビット幅であり、16個の32ビットデータ要素を含むデスティネーションオペランド1030とを示す。データ要素のすべてがデスティネーションオペランド1030においてA0である。1の要素のブロードキャストは、ソースの1つが異なる処理に対して共通している場合、ベクトルソースとスカラソースとを混合した命令について有用である。ソースメモリオペランドの4要素が、フル16要素有効ソースオペランド32ビット命令についてを形成するため4回ブロードキャストされるか、又はフル8要素有効ソースオペランド64ビット命令についてを形成するため2回ブロードキャストされる4要素粒度である。図10Cは、本発明の実施例による32ビットデータ要素のブロードキャスト4要素粒度を示すブロック図である。図12Bにおいて、当該処理の具体例が1220によりラベル付けされる。図10Cは、4つの32ビットデータ要素D0C0B0A0を有するメモリをソースとするソースオペランド1040と、512ビット幅であり、連続する128個のブロックに分割されるパケット位置3~0として参照されるデスティネーションオペランド1050とを示し、各ブロックは4つの32ビットデータ要素に分割される。例えば、デスティネーションオペランド1050のパケット位置3~0のそれぞれにおけるコンテンツはD0C0B0A0などである。4~16回のブロードキャストは、計算がカラーコンポーネントRGBAと同様にPacked値のアレイに対して実行されるAOSArrayOfStructureにとって大変有用であり、この場合、ベクトル命令の異なる処理に対して共通のパケットが利用されるとき16要素ベクトルは4つの要素の4つのパケットのアレイとみなされる、4~16が効果的である。ベース処理フィールドテーブル-図11A及び11Bオペコードマップフィールド-図11A図11Aは、本発明の実施例によるオペコードマップフィールドにより指定されうる可能なオペコードマップのグループを示すテーブルである。第1カラムは、オペコードマップフィールド315のコンテンツの可能な値を示し、第2カラムは、インプライされるリーディングオペコードバイトを示し、第3カラムは、即値があるか示す。プリフィックス符号化フィールド-図11B図11Bは、本発明の実施例によるオペコードマップフィールドにより指定されうる可能なプリフィックス符号化のグループを示すテーブルである。第1カラムは、プリフィックス符号化フィールド325のコンテンツの可能な値を示し、第2カラムは、当該プリフィックスの意味を示す。データ操作フィールドテーブル-図12~15図12~15は、本発明の実施例によるデータ操作フィールド254Cと、図12A~Dについてブロードキャストフィールド257Bとによりそれぞれ指定されうる可能なデータ操作処理とブロードキャスト処理とのグループを示すテーブルである。テーブルの第1カラムは、データ操作フィールド254Cのコンテンツの可能な値を示し、第2カラムはファンクションを示し、第3カラムは利用を示す。ロード/OPのためのデータ操作フィールドテーブル-図12A~12D図12A~12Dは、本発明の実施例によるロード/op命令のためのデータ操作フィールド254C及びブロードキャストフィールド257Bによりそれぞれ指定されうる可能なデータ操作処理及びブロードキャスト処理のグループを示すテーブルである。図3A~Dにおける例示的な特定のベクトルフレンドリ命令フォーマットのケースでは、データ操作フィールド254Cは3ビットフィールドであり、ブロードキャストフィールド257Bは1ビットフィールドである。図示された実施例では、ブロードキャストフィールド257Bのコンテンツは、図12A~Dに示されるテーブルの最初の2つのローの間で選択し、すなわち、それのコンテンツは、データ操作フィールド254Cにおける000及び001の等価なものの間で選択する。これは、テーブルの最初の2つのローしか含まないブラケットを利用して図12A~Dに示される。ロード/OP整数及びデータ要素サイズフィールド=64ビット-図12A図12Aは、本発明の実施例によるデータ要素幅が64ビットであるロード/op整数についてデータ操作フィールド254C及びブロードキャストフィールド257Bにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、64ビットIntegerLoad-opSwizzUpConvi64クワドワードスウィズル/変換プリミティブと呼ばれ、ブロック444A及び444Bの表現である。ロード/OP整数及びデータ要素サイズフィールド=32ビット-図12B図12Bは、本発明の実施例によるデータ要素幅が32ビットであるロード/op整数のデータ操作フィールド254C及びブロードキャストフィールド257Bにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、32ビットIntegerLoad-opSwizzUpConvi32スウィズル/変換プリミティブとして参照され、ブロック446A及び446Bの表現である。ロード/OP浮動小数点及びデータ要素サイズフィールド=64ビット-図12C図12Cは、本発明の実施例によるデータ要素幅が64ビットであるロード/op浮動小数点のデータ操作フィールド254C及びブロードキャストフィールド257Bにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、64ビットFloating-pointLoad-opSwizzUpConvf64スウィズル/変換プリミティブとして参照され、ブロック450A及び450Bの表現である。ロード/OP浮動小数点及びデータ要素サイズフィールド=32ビット-図12D図12Dは、本発明の実施例によるデータ要素幅が32ビットであるロード/op浮動小数点のデータ操作フィールド254C及びブロードキャストフィールド257Bにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、32ビットFloating-pointLoad-opSwizzUpConvf32スウィズル/変換プリミティブとして参照され、ブロック452A及び452Bの表現である。ロードのためのデータ操作フィールドテーブル-図13A~13D図13A~13Dは、本発明の実施例によるロード命令のためのデータ操作フィールドにより指定されうる可能なデータ操作処理のグループを示すテーブルである。ロード整数及びデータ要素サイズフィールド=64ビット-図13A図13Aは、本発明の実施例によるデータ要素幅が64ビットであるロード整数のためのデータ操作フィールド254Cにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、UpConvi64として参照され、ブロック456の表現である。ロード整数及びデータ要素サイズフィールド=32ビット-図13B図13Bは、本発明の実施例によるデータ要素幅が32ビットであるロード整数のためのデータ操作フィールド254Cにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、UpConvi32として参照され、ブロック458の表現である。ロード浮動小数点及びデータ要素サイズフィールド=64ビット-図13C図13Cは、本発明の実施例によるデータ要素幅が64ビットであるロード浮動小数点のためのデータ操作フィールド254Cにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、UpConvf64として参照され、ブロック462の表現である。ロード浮動小数点及びデータ要素サイズフィールド=32ビット-図13D図13Dは、本発明の実施例によるデータ要素幅が32ビットであるロード浮動小数点のためのデータ操作フィールド254Cにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、UpConvf32として参照され、ブロック464の表現である。追加的ポイント図13A~13Dロード/opテーブルのそれぞれにおいて指定される可能なデータ操作処理のグループは、対応する図12A~12Dロードテーブルのもののサブセットである。具体的には、当該サブセットはブロードキャスト処理を含まない。これは、フルオペコードフィールド274の特定の値ギャザー又はブロードキャスト処理を指定するものなどが、データ操作フィールド254Cにおおいて指定されたブロードキャストと共に利用できず、フルオペコードフィールド274の当該値は、図12A~12Dロードテーブルのロードによってのみ利用可能である。より具体的な例として、ブロードキャスト処理を指定するフルオペコードフィールド274に値がある場合、データ操作フィールド254Cはまたブロードキャスト処理を示すことができない。本発明の特定の実施例は別々のロード/opテーブルとロードテーブルとを有する別々のロード/op及びロード処理を含むが、他の実施例は、当該実施機構を有する必要はない例えば、それらは、ロード/opのみをサポートし、ロードのみをサポートし、フルオペコードフィールド274のブロードキャストはデータ操作フィールド254Cのブロードキャストを無視させることを判断してもよい。ストアのためのデータ操作フィールドテーブル-図14A~14D図14A~14Dは、本発明の実施例によるストア命令のためのデータ操作フィールドにより指定されうる可能なデータ操作処理のグループを示すテーブルである。ストア整数及びデータ要素サイズフィールド=64ビット-図14A図14Aは、本発明の実施例によるデータ要素幅が64ビットであるストア整数のためのデータ操作フィールド254Cにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、DownConvi64として参照され、ブロック470の表現である。ストア整数及びデータ要素サイズフィールド=32ビット-図14B図14Bは、本発明の実施例によるデータ要素幅が32ビットであるストア整数のためのデータ操作フィールド254Cにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、DownConvi32として参照され、ブロック472の表現である。ストア浮動小数点及びデータ要素サイズフィールド=64ビット-図14C図14Cは、本発明の実施例によるデータ要素幅が64ビットであるストア浮動小数点のためのデータ操作フィールド254Cにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、DownConvf64として参照され、ブロック476の表現である。ストア浮動小数点及びデータ要素サイズフィールド=32ビット-図14D図14Dは、本発明の実施例によるデータ要素幅が32ビットであるストア浮動小数点のためのデータ操作フィールド254Cにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、DownConvf32として参照され、ブロック478の表現である。グラフィックデータタイプのためのデータ操作フィールドテーブル-図15A~15C図15A~15Cは、本発明の実施例によるグラフィックスデータタイプに対して実行される命令のためのデータ操作フィールドにより指定されうる可能なデータ操作処理のグループを示すテーブルである。ロードグラフィック-図15A図15Aは、本発明の実施例によるデータ要素幅が32ビットであるロードグラフィックのためのデータ操作フィールド254Cにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、UpConvg32として参照され、ブロック480の表現である。ロードPackedグラフィック-図15B図15Bは、本発明の実施例によるデータ要素幅が32ビットであるロードPackedグラフィックのためのデータ操作フィールド254Cにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、UpConvpg32として参照され、ブロック482の表現である。ストアグラフィック-図15C図15Cは、本発明の実施例によるデータ要素幅が32ビットであるストアグラフィックのためのデータ操作フィールド254Cにより指定されうる可能なデータ操作処理のグループを示すテーブルである。当該テーブルは、UpConvg32として参照され、ブロック484の表現である。ライトマスクフィールド-図16A~D図16A~16Bは、本発明の実施例による異なるライトマスクと、同一の第2ソース及びデスティネーションとにより実行される2つのマージング処理を示す。図16Aは、本発明の実施例によるライトマスクレジスタK1においてライトマスクを利用してマージする一例となる処理1600を示すブロック図であり、データ要素幅は32ビットであり、第2ソース及びデスティネーションが同一である。図16Aは、ソースオペランド1605、ソース/デスティネーションオペランド1610、マスクレジスタK11615のコンテンツ下位16ビットは1と0との混合を含む、及びデスティネーションオペランド1620を示す。マスクレジスタK1の下位16ビット位置のそれぞれは、データ要素位置の1つに対応するK1[0]はデータ要素位置0に、K1[1]はデータ要素位置1などに対応する。デスティネーションオペランド1620の各データ要素位置について、それは、マスクレジスタK1の対応するビット位置がそれぞれ0又は1であるか否かに依存して、ソース/デスティネーション1610のデータ要素位置のコンテンツ又は処理結果加算として示されるを含む。他の実施例では、ソース/デスティネーションオペランド1610は、第2ソースオペランドに置換される。これらの実施例では、デスティネーションオペランド1620は、マスクレジスタK1の対応するビット位置が0である存在する場合データ要素位置に処理前からのデスティネーションオペランド1620のコンテンツを含み、マスクレジスタK1の対応するビット位置が1である存在する場合データ要素位置に処理結果を含む。上述されるように、本発明の一実施例はK0を用いて、マスキングが実行されるべきでないことを示す。図16Bは、本発明の実施例によるすべて1の配線化されたマスクを用いてマージする一例となる処理1625を示すブロック図であり配線化されたライトマスクは、ライトマスクレジスタk0を指定する命令により利用される、データ要素幅は32ビットであり、第2ソース及びデスティネーションは同じである。図16Bは、K11615が配線化されたマスク1630と置換され、デスティネーションオペランド1620がデスティネーションオペランド1635と置換されることを除き、図16Aと同じである。配線化されたマスク1630はすべて1であり、デスティネーションオペランド1635は、処理結果を表すデータ要素を含む。図16Cは、本発明の実施例による8、16、32及び64ビットデータ要素幅の512ビットベクトルのデータ要素位置とライトマスクレジスタのビットとの対応関係を示すブロック図である。具体的には、64ビットレジスタKN1640が示され、データ要素幅が8ビットであるとき、64ビットすべてが利用され、データ要素幅が16ビットであるとき、最下位の32ビットのみが利用され、データ要素幅が32ビットであるとき、最下位16ビットのみが利用され、データ要素幅が64ビットであるとき、最下位8ビットのみが利用される。256ビットベクトルについて、データ要素幅が8ビットであるとき、最下位32ビットのみが利用され、データ要素幅が16ビットであるとき、最下位16ビットが利用され、データ要素幅が32ビットであるとき、最下位8ビットのみが利用され、データ要素幅が64ビットであるとき、最下位4ビットのみが利用される。128ビットベクトルについて、データ要素幅が8ビットであるとき、最下位16びっとのみが利用され、データ要素幅が16ビットであるとき、最下位8ビットのみが利用され、データ要素幅が32ビットであるとき、最下位2ビットのみが利用され、データ要素幅が64ビットであるとき、最下位2ビットのみが利用される。所与のマスクレジスタの値は、GPレジスタから転送されるか、又は2つのマスクの間の論理処理の直接的な結果として計算されるベクトル比較命令の直接的な結果として設定可能である。図16Dは、本発明の実施例によるライトマスクレジスタK1におけるライトマスクを利用してマージする一例となる処理1660を示すブロック図であり、データ要素幅は32ビットであり、第2ソース及びデスティネーションは異なる。図16Eは、本発明の実施例によるライトマスクレジスタK1におけるライトマスクを利用してゼロ化する一例となる処理1666を示すブロック図であり、データ要素幅は32ビットであり、第2ソース及びデスティネーションは異なる。ゼロ化処理はデスティネーションがソースと異なる処理に対してのみ示されるが、ゼロ化はまた、第2ソース及びデスティネーションが同一である場合に機能する。例示的なテンプレート及び命令-図17~18以下の記号は、図17~18への導入により提供される。EVEX.U0のための例示的な命令符号化-図17A~D図17Aは、本発明の実施例による一例となる特定のベクトルフレンドリ命令フォーマットからのフィールドのサブセットを示す。具体的には、図17Aは、EVEXプリフィックス302、リアルオペコードフィールド330及びMODR/Mフィールド340を示す。本実施例では、フォーマットフィールド240は、命令フォーマットがベクトルフレンドリ命令フォーマットであることを示すための0×62を含む。図17B~17Dはそれぞれ、本発明の実施例による図17Aの特定のベクトルフレンドリ命令フォーマットに符号化される一例となる特定のベクトルフレンドリ命令からのフィールドのサブセットを示す。図17B~17Dの説明では、VADDPS命令の各種の例示的なコンフィギュレーションのための一部のフィールドの可能な符号化を示すため、一部のフィールドの具体的な利用が説明される。図17B~17Dのそれぞれにおいて、フォーマットフィールド240は、命令がベクトルフレンドリ命令フォーマットにより符号化されていることを示すための0×62を含み、リアルオペコードフィールド330はVADDPSオペコードを含む。図17B~17Dはそれぞれ、本発明の実施例によるEVEX.U0クラスへのVADDPS命令の符号化を示し、図17B及び17Cはそれぞれ、非メモリアクセス205命令テンプレートへのVADDPSのEXEV.U0符号化を示し、図17Dは、メモリアクセス220命令テンプレートへのVADDPSのEVEX.U0符号化を示す。VADDPS命令は、第1レジスタ又はメモリオペランドzmm3などから第2レジスタzmm2などへのPackedシングル精度浮動小数点値を加算し、結果をライトマスクk1などに従って第3レジスタzmm1などに格納する。当該命令は、命令の符号化に応じて各種のラウンド処理、データ変換処理又はデータ操作処理を可能にする。当該命令は、以下の命令ニーモニック、EVEX.U0.NDS.512.0F58/rVADDPSzmm1{k1},zmm2,Sf32zmm/mV{eh}により記述されてもよい。図17Bは、非メモリアクセスフルラウンド制御タイプ処理210命令テンプレートにおけるVADDPS命令の符号化を示す。データ要素幅フィールド264は、32ビットデータ要素幅を示すため0となる。クラスフィールド268すなわち、EVEX.Uは、EVEX.U0クラスを示すため0に設定される。アルファフィールド252は、RSフィールド252Aすなわち、EVEX.rsとして解釈され、ラウンド制御タイプ処理を選択するため1すなわち、RSフィールド252A.1に設定される。アルファフィールド252がRSフィールド252A.1として機能しているため、ベータフィールド254はラウンド処理フィールド258すなわち、EVEX.r2-0として解釈される。具体的には、EVEX.r2はSAEフィールド256として解釈され、EVEX.r1-0はラウンド制御フィールド254Aとして機能する。モディファイアフィールド246すなわち、MODR/M.MOD342は、非メモリアクセスを示すため11に設定される。すなわち、レジスタzmm3は、メモリオペランドの代わりに第1ソースオペランドとなる。図17Cは、非メモリアクセスデータ変換タイプ処理215命令テンプレートにおけるVADDPS命令の符号化を示す。図17Cの符号化は、アルファフィールド252及びベータフィールド254を除き図17Bと同一である。アルファフィールド252はRSフィールド252Aすなわち、EVEX.rsとして解釈され、データ変換タイプ処理を選択するため0に設定されるすなわち、RSフィールド252A.2。アルファフィールド252はRSフィールド252A.2として機能するため、ベータフィールド254は、データ変換フィールド254Bすなわち、EVEX.s2-0として解釈される。図17Dは、メモリアクセス220命令テンプレートにおけるVADDPS命令の符号化を示す。データ要素幅フィールド264は、32ビットデータ要素幅を示すため0である。クラスフィールド268すなわち、EVEX.Uは、EVEX.U0を示すため0に設定される。アルファフィールド252は、イビクションヒントフィールド252Bすなわち、EVEX.EHとして解釈される。ベータフィールド254は、データ操作フィールド254Cすなわち、EVEX.s2-0として解釈される。モディファイアフィールド246すなわち、MODR/M.MOD342は、第1ソースオペランドがメモリオペランドであることを示すため、00、01又は10に設定される。これは、図17Dにおいて、すなわち、11を除く任意の入力として示される。EVEX.U1のための例示的な命令符号化-図18A~18F図18Aは、本発明の実施例による一例となる特定のベクトルフレンドリ命令フォーマットからのフィールドのサブセットを示す。具体的には、図1Aは、EVEXプリフィックス302、リアルオペコードフィールド330及びMODR/Mフィールド340を示す。本実施例では、フォーマットフィールド240は、命令フォーマットがベクトルフレンドリ命令フォーマットであることを示すため0×62を含む。図18B~18Fはそれぞれ、本発明の実施例による図18Aの特定のベクトルフレンドリ命令フォーマットに符号化された一例となる特定のベクトルフレンドリ命令からのフィールドのサブセットを示す。図18B~18Fの説明では、一部のフィールドの特定の利用は、VADDPS命令の各種の例示的なコンフィギュレーションのため一部のフィールドの可能な符号化を示すため説明される。図18B~18Fのそれぞれでは、フォーマットフィールド240は、当該命令がベクトルフレンドリ命令フォーマットに符号化されていることを示すための0×62を含み、リアルオペコードフィールド330は、VADDPSオペコードを含む、図18B~18Fはそれぞれ、本発明の実施例によるEVEX.U1クラスにおけるVADDPS命令の符号化を示し、図18B~18Eはそれぞれ、非メモリアクセス205命令テンプレートにおけるVADDPSのEVEX.U1符号化を示し、図18Fは、メモリアクセス220命令テンプレートにおけるVADDPSのEVEX.U1符号化を示す。図18Bは、非メモリアクセスライトマスク制御パーシャルラウンド制御タイプ処理212命令テンプレートにおけるVADDPS命令の符号化を示す。データ要素幅フィールド264は、32ビットデータ要素幅を示すため0である。クラスフィールド268すなわち、EVEX.Uは、EVEX.U1クラスを示すため1に設定される。アルファフィールド252は、ライトマスク制御フィールド252Cとして解釈されるマージング又はゼロ化ライトマスクとの間の選択。ベータフィールド254の最下位ビットは、RLフィールド257Aとして解釈され、パーシャルラウンドタイプ処理すなわち、ラウンド257A.1を示すため1に設定される。ベータフィールド254の2つの最上位ビットは、ラウンド処理フィールド259Aとして解釈される。モディファイアフィールド246すなわち、MODR/M.MOD342は、非メモリアクセスを示すため11に設定される。すなわち、レジスタzmm3はメモリオペランドの代わりの第1ソースオペランドである。この符号化では、VADDPS命令は、第1レジスタzmm3などから第2レジスタzmm2などへのPackedシングル精度浮動小数点値を加算し、ライトマスクk1などに従ってラウンド化された結果を第3レジスタzmm3などに格納する。これは、以下のニーモニックにより示される。すなわち、マージングライトマスキングのための{z}のないゼロ化ライトマスキング及び同じためのEVEX.U1.NDS.512.0F.W058/rVADDPSzmm1である。その他のニーモニックは、このセクションでは、すべてが{z}を含むことを示すが、{z}のない同じニーモニックがまた同様に可能であることが理解されるべきである。図18C~18Eはそれぞれ非メモリアクセスライトマスク制御VSIZEタイプ処理217命令テンプレートにおけるVADDPS命令の符号化を示す。図18C~18Eの符号化は、ベータフィールドを除き図17Bと同一である。図18C~18Eのそれぞれにおいて、ベータフィールド254の最下位ビットはRLフィールド257Aとして解釈され、VSIZEタイプ処理257A.2を示すため0に設定される。ベータフィールド254の2つの最上位ビットは、ベクトル長フィールド259Bとして解釈される。図18Cにおいて、ベクトル長フィールド259Bは、512ビットのベクトルサイズを示すため10に設定される。図18Dにおいて、ベクトル長フィールド259Bは、256ビットのベクトルサイズを示すため01に設定される。図18Eにおいて、ベクトル長フィールド259Bは、128ビットのベクトルサイズを示すため00に設定される。この符号化では、VADDPS命令は、第1レジスタzmm3などから第2レジスタzmm2などへのPackedシングル精度浮動小数点値を加算し、ライトマスクk1などに従って当該結果を第3レジスタzmm1などに格納する。図18Cは、以下のニーモニックにより示される。EVEX.U1.NDS.512.0F.W058/rVADDPSzmm1{k1}{z},zmm2,zmm3である。図18Dは、以下のニーモニックにより示される。EVEX.U1.NDS.256.0F.W058/rVADDPSymm1{k1}{z},ymm2,ymm3である。図18Eは、以下のニーモニックにより示される。EVEX.U1.NDS.128.0F.W058/rVADDPSxmm1{k1}{z},xmm2,xmm3である。図18Fは、メモリアクセスライトマスク制御227命令テンプレートにおけるVADDPS命令の符号化を示す。データ要素幅フィールド264は、32ビットデータ要素幅を示すため0である。クラスフィールド268すなわち、EVEX.Uは、EVEX.U1クラスを示すため1に設定される。アルファフィールド252は、ライトマスク制御フィールド252Cとして解釈されるマージングライトマスク又はゼロ化ライトマスクとの間で選択。ベータフィールド254の最下位ビットは、ブロードキャストフィールド257Bとして解釈される。ベータフィールド254の2つの最下位ビットは、ベクトル長フィールド259Bとして解釈される。モディファイアフィールド246すなわち、MODR/M.MOD342は、第1ソースオペランドがメモリオペランドであることを示すため00、01又は10に設定される。これは、図17Dにおいて、としてすなわち、11以外の任意の入力示される。この符号化では、VADDPS命令は、第1レジスタzmm2などにロードに応答してブロードキャスト可能なメモリオペランドからのPackedシングル精度浮動小数転置を加算し、ライトマスクk1などに従って第2レジスタzmm1などに結果を格納する。ベクトル長フィールドが512ビットのベクトルを示すとき、これは、以下のニーモニックにより示されてもよい。EVEX.U1.NDS.512.0F.W058/rVADDPSzmm1{k1}{z},zmm2,B32mVベクトル長フィールドが256ビットのベクトルを示すとき、これは、以下のニーモニックにより示されてもよい。EVEX.U1.NDS.256.0F.W058/rVADDPSymm1{k1}{z},ymm2,B32mVベクトル長フィールドが128ビットのベクトルを示すとき、これは、以下のニーモニックにより示されてもよい。EVEX.U1.NDS.128.0F.W058/rVADDPSxmm1{k1}{z},xmm2,B32mV例示的なディスプレースメント8N値本発明の一実施例では、メモリアクセスサイズNが、使用される命令テンプレートと後述されるような他のファクタとに依存してベース処理フィールド、データ要素幅フィールド及び拡張処理フィールドの2以上のコンテンツに基づき決定される。本発明の一実施例では、U=0クラスAに関して、以下のテーブルは、メモリにおいてアクセスされるベクトル又は要素のサイズと、圧縮されたディスプレースメントのディスプレースメントファクタdisp8Nとを示す。いくつかの命令は、メモリのレベルにおいてフルベクトル粒度の代わりに要素粒度により機能し、以下のテーブルにおいて要素レベルカラムを利用するべきである。ファンクションカラムのラベルU/Si64などは、ベース処理フィールド例えば、U/Siはロード整数及びロード/op整数を示すなどと、データ要素幅例えば、64は64ビットデータ要素幅であるとにより指定されるメモリアクセスタイプを示す。当該カラムの値は、図3の実施例においてデータ操作フィールド254Cの可能な値である。図4Bを参照して、各種メモリアクセスタイプがそれらのデータ操作図12A~15Cにフローして示されいくつかのケースでは、データ要素幅判定を介し、各種テーブル12A~15CはNの値の選択を導出し、適切である場合、カラム2及び3に配置される。例えば、ロード/op整数64ビットデータ要素幅メモリアクセス処理は図12Aにフローし、データ操作フィールド254Cのコンテンツは、データ操作処理図12Aに示されるようなとNの値以下に示されるようなとの双方を選択するのに利用される。他の例として、ロード整数64ビットデータ要素幅メモリアクセス処理ベース処理フィールド242においてブロードキャストを示すは図13Aにフローし、データ操作フィールド254Cのコンテンツが、データ操作処理図13Aに示されるように、ブロードキャストデータ変換を含まないとNの値後述されるとの双方を選択するため利用される。従って、第2カラムは、ベース処理フィールド242がブロードキャスト又は要素レベルメモリアクセスを指定しない命令のためのものであり、第3カラムの第1サブカラムは、ベース処理フィールド242がブロードキャストを指定するが、要素レベルメモリアクセスを指定しない命令のためのものであり、第3カラムの第2サブカラムは、ベース処理フィールド242がブロードキャスト又は要素レベルメモリアクセスを指定する命令のためのものである。本発明の一実施例では、U=1クラスBに関して、各種命令が、ベクトル長ベクトル長フィールド259Bのコンテンツにより決定される、ベクトル処理のタイプ及びブロードキャストが実行されているかベース処理フィールド242及び/又はブロードキャストフィールド257Bの値、並びにデータ要素幅図4Eに示されるように、リアルオペコードフィールド330及び/又はデータ要素幅フィールド264のコンテンツにより決定されるに基づき異なるタイプの命令について決定されるメモリアクセスサイズNに関してdisp8を利用することによって、圧縮されたディスプレースメントを利用可能である。一般に、メモリアクセスサイズNは、メモリ入力のバイト数に対応する例えば、フル512ビットメモリベクトルにアクセスするとき64など。本発明の一実施例では、以下の第1テーブルは、以下の第2テーブルにおける用語の利用の一部を説明し、第2テーブルは各種命令のためのNの値を与える。以下のテーブルのTupleは、メモリのデータのPacked構造である。リザービングビットまた、本発明のいくつかの実施例では、異なるプロセッサ又はプロセッサ内の異なるコアは、クラスAのみ、クラスBのみ又は両方のクラスをサポートしてもよい。例えば、汎用計算用のハイパフォーマンス汎用オウトオブオーダコアは、クラスBのみをサポートし、主としてグラフィック及び/又は科学スループット計算用のコアはクラスAのみをサポートし、双方用のコアは双方をサポートしてもよいもちろん、双方のクラスカラのテンプレート及び命令の混合を有するが、双方のクラスカラの必ずしもすべてのテンプレート及び命令を有さないコアは、本発明の範囲内である。また、シングルプロセッサは、そのすべてが同じクラスをサポートするか、又は異なるコアは異なるクラスをサポートする複数のコアを含むものであってもよい。例えば、別個のグラフィック及び汎用コアを備えたプロセッサでは、主としてグラフィック及び/又は科学計算用のグラフィックコアの1つはクラスAしかサポートせず、汎用コアの1以上は、クラスBしかサポートしない汎用計算用のハイパフォーマンス汎用アウトオブオーダコアであってもよい。別個のグラフィックコアを有しない他のプロセッサは、クラスAとクラスBとの双方をサポートする1以上の汎用インオーダ又はアウトオブオーダコアを有してもよい。もちろん、1つのクラスカラの特徴はまた、本発明の異なる実施例における他のクラスにおいて実現されてもよい。ハイレベル言語により記述されたプログラムは、1実行用のターゲットプロセッサによりサポートされるクラスの命令のみを有する形式、又は2コードを現在実行中のプロセッサによりサポートされる命令に基づき実行すべきルーチンを選択する制御フローコードを有し、すべてのクラスの命令の異なる組み合わせを用いて記述された他のルーチンを有する形式を含む各種実行可能形式に置かれる例えば、ジャストインタイムコンパイル又は静的コンパイルされるなど。ロード、ブロードキャスト及びインサートに関して、本発明の一実施例は、ベース処理フィールドによる異なるバージョンのブロードキャストを実現し、このため、ブロードキャストフィールド257Bは不要である。バイト/ワード処理について、本発明の一実施例は、当該特徴をサポートするハードウェアコストが現在は正当なものでなかっためた、ブロードキャストフィールド257Bによるブロードキャストをサポートしていない。ギャザーに関してロードの一タイプである、本発明の一実施例は、ベース処理フィールドによる異なるバージョンのブロードキャストを実現し、このため、ブロードキャストフィールド257Bは不要である。スキャッタ、抽出及びストアに関して、一実施例は、これらのタイプの命令はレジスタソースメモリソースでないとメモリデスティネーションとを有するため、ブロードキャストフィールド257Bによるブロードキャストをサポートせず、メモリがソースであるときのみ、ブロードキャストは意味がある。ギャザー命令のマスクは、完了マスクであり、マージングライトマスク処理は現在所望の処理である。ストア、スキャッタ又は抽出に対するライトマスクのゼロ化の実行は、ベクトルストア、スキャッタ又は抽出が典型的には利用されない処理のメモリの位置をゼロ化する。比較のため、本発明の一実施例では、ライトマスキングのゼロ化は、比較結果が否定的なものである場合、比較はすでに0を書き込んでいるため不自然であり例えば、比較された2つの要素が等価の比較のケースにおいて等しくないなど、従って、比較結果が解釈される方法を妨げる。例示的なパイプライン-図19~22図19~22は、本発明による4つの例示的なプロセッサパイプラインの異なるステージにおいて図2Aの命令テンプレートの何れのフィールドが利用されるか示すブロック図である。要求される理解レベルにおいて、図示されたパイプラインステージ及びそれらのファンクションは周知であることに留意すべきである。図19~22のそれぞれは、非メモリアクセスフルラウンド制御タイプ処理210命令テンプレート、非メモリアクセスデータ変換タイプ処理215命令テンプレート及びメモリアクセス225/230命令テンプレートをそれぞれ示すA、B及びC図を含む。図19~22のそれぞれは異なる一例となるパイプラインを示すが、同一のパイプラインは各図番のA~C図のそれぞれに示される。例えば、図19Aは、非メモリアクセスフルラウンド制御タイプ処理210命令テンプレートと一例となる第1命令パイプラインとを示し、図19Bは、非メモリアクセスデータ変換タイプ処理215と図19Aと同じ例示的なパイプラインとを示し、図20Aは非メモリアクセスフルラウンドタイプ制御処理210命令テンプレートと一例となる第2プロセッサパイプラインとを示す。図19~22はそれぞれ、プロセッサパイプライン1900、2000、2100及び2200を示す。パイプラインステージ名は異なるパイプラインにわたって同一である場合、同一の参照番号が理解の容易のため利用された。しかしながら、これは、異なるパイプラインにわたって同一名のパイプラインステージが同じであることを意味するのでなく、単に類似する処理を実行することを意味するそれはより多く又はより少ないサブ処理を含むかもしれないが。例示的な汎用パイプライン-図19プロセッサパイプライン1900は、汎用プロセッサパイプラインを表し、フェッチステージ1910、復号化ステージ1920、レジスタリード/メモリリードステージ1930、データ変換ステージ1940、実行ステージ1950及びライトバック/メモリライトステージ1960を含む。命令テンプレートからプロセッサパイプラインステージへのブラケット及び矢印は、パイプラインステージの異なるものによって利用されるフィールドを示す。例えば、図19Aにおいて、フィールドのすべてが復号化ステージ1920により利用され、レジスタインデックスフィールド244がレジスタリード/メモリリードステージ1930により利用され、rsフィールド252Aラウンド252A.1、SAEフィールド256、ラウンド処理フィールド258及びデータ要素幅フィールド264が、実行ステージ1960により利用され、データ要素幅フィールド264はまたライトバック/ライトメモリステージ1960により利用され、ライトマスクフィールド268は実行ステージ1950又はライトバック/メモリライトステージ1960により利用される。異なる2つのステージにおける任意的なライトマスクフィールド270の利用は、ライトマスクフィールドが実行ステージ1950におけるマスクされたデータ要素に対する処理の実行を不可にしうるかこれにより、これらのデータ要素位置がライト/メモリライトステージ1960において更新されることを防ぐ、又は実行ステージ1950は、当該処理を実行し、ライトマスクがマスクされたデータ要素位置の更新を防ぐため、ライト/メモリライトステージ1960中に適用されることを可能にする。矢印は異なるフィールドにより利用されるステージのみを必ずしも表すものでなく、当該フィールドが最大のインパクトを有する可能性がある場所を表すことに留意すべきである。A図とB図との間では、拡張処理フィールド250がラウンド処理のための実行ステージ1950により利用され、拡張処理フィールド250がデータ変換タイプ処理のためデータ変換ステージ1940により利用され、データ要素幅フィールド264から実行ステージ1950へのラインがデータ変換ステージ1940に移されるという大きな相違があることに留意されたい。図19Cは、レジスタリード/メモリリードステージ1930に移動するベース処理フィールド242、レジスタリード/メモリリードステージ1930により利用される拡張処理フィールド250のEHフィールド252B、スケールフィールド260、ディスプレースメントフィールド262A/ディスプレースメントファクタフィールド262B、ライトマスクフィールド270、及びそれがメモリリード又はメモリライト処理である否かに応じてレジスタリード/メモリリードステージ1930又はライトバック/メモリライト1960により任意的に利用されるデータ要素幅フィールド264を示す。即値フィールド272を利用するパイプラインステージは周知であるため、当該フィールドのマッピングは、本発明を不明りょうにしないように表されない。例示的なインオーダパイプライン-図20プロセッサパイプライン2000は、インオーダプロセッサパイプラインを表し、プロセッサパイプライン2000と同じ名前のパイプラインステージを有するが、フェッチステージ1910と復号化ステージ1920との間にレングス復号化ステージ2012が挿入されている。図20A~20Cのマッピングは、実質的に図19A~19Cのものと同じである。例示的な第1アウトオブオーダパイプライン-図21プロセッサパイプライン2100は、プロセッサパイプライン2000と同じ名前のパイプラインステージを有する例示的な第1アウトオブオーダパイプラインを表すが、1割当てステージ2122、リネーミングステージ2124、及び復号化ステージ1920とレジスタリード/メモリリードステージ1930との間に挿入されるスケジュールステージ2126と、2リオーダバッファrobリードステージ2162、例外処理ステージ2164、及びライトバック/メモリライトステージ1960の後に追加されるコミットステージ2166を有する。図21A~21Cにおいて、マッピングは、1レジスタインデックスフィールド244とモディファイアフィールド246とがリネーミングステージ2142により利用され、2図21Aのみにおいて、ライトマスクフィールド270がまた任意的にマスクされたデータ要素位置に対する例外を抑制するため、例外処理ステージ2164により任意的に利用され、3図21Aのみにおいて、SAEフィールド256が浮動小数点例外が抑制されているか否かに応じて実行ステージ1950及び例外処理ステージ2164により任意的に利用される、という例外はあるが、図20A~20Cのマッピングと全体的に同じである。例示的な第2オウトオブオーダパイプライン-図22プロセッサパイプライン2200は、データ変換及び実行ステージが実行/データ変換ステージ2245を形成するようマージされていることを除き、プロセッサパイプライン2100と同じ名前のプロセッサパイプラインステージを有する例示的な第2アウトオブオーダパイプラインを表す。図22A~22Cのマッピングは、データ変換ステージ1940及び実行ステージ1950に別々に行われたマッピングが実行/データ変換ステージ22454に移行することを除き、図21A~21Cと実質的に同じである。例示的なパイプライン上のクラスB命令テンプレート以下のテーブルは、本発明の実施例による図2Bの命令テンプレートのフィールドを収容するため図19~22を変更する方法を示す。復号化ステージ1920復号化ステージ1920において、各種の周知の復号化ユニットが利用可能である。例えば、復号化ユニットは、各マクロ命令をシングル幅マイクロ命令に復号化するものであってもよい。他の例として、復号化ユニットは、いくつかのマクロ命令をシングル幅マイクロ命令に復号化してもよく、他のものをマルチ幅マイクロ命令に復号化してもよい。アウトオブオーダプロセッサパイプラインに特に適した他の例として、復号化ユニットは、各マクロ命令を1以上のマイクロopに復号化してもよく、各マイクロopが発行され、アウトオブオーダに実行される。復号化ユニットは1以上のデコーダにより実現されてもよく、各デコーダは、当該分野において周知なプログラマブルロジックアレイPLAとして実現されてもよい。例えば、所与の復号化ユニットは、1異なるマクロ命令を異なるデコーダに誘導するためのステアリングロジック、2命令セットのサブセットを復号化し第2、第3及び第4デコーダより多く、1回に2つのマイクロopを生成する第1デコーダ、3命令セット全体のサブセットのみを復号化し、1回に1つのマイクロopしか生成しない第2、第3及び第4デコーダ、4命令セット全体のサブセットのみを復号化し、1回に4つのマイクロopを生成するマイクロシーケンサROM、及び5何れの出力がマイクロopキューに提供されるか決定するマイクロシーケンサROM及びデコーダによる多重化ロジックフィードを有してもよい。デコーダの他の実施例は、より多く又はより少ない命令及び命令サブセットを復号化するより多く又はより少ないデコーダを有してもよい。例えば、一実施例は、1回に2つのマイクロopをそれぞれが生成する第2、第3及び第4デコーダを有してもよく、また1回に8つのマイクロopを生成するマイクロシーケンサROMを有してもよい。例示的なプロセッサアーキテクチャ-図23~24例示的なインオーダプロセッサアーキテクチャ-図23A~23B図23A~Bは、一例となるインオーダプロセッサアーキテクチャのブロック図を示す。当該実施例は、ワイドベクトルプロセッサVPUにより拡張されたインオーダCPUコアの複数のインスタンス化に関して設計されている。コアは、正確なプリケーションに応じて高帯域幅インターコネクトネットワークを介し固定的なファンクションロジック、メモリI/Oインタフェース及び他の必要なI/Oロジックと通信する。例えば、本実施例のスタンドアローンGPUとしての実現は、典型的には、PCIeバスを含む。図23Aは、本発明の実施例によるオンダイインターコネクトネットワーク2302への接続とレベル2L2キャッシュ2304のローカルサブセットと共にシングルCPUコアのブロック図である。命令デコーダ2300は、特定のベクトル命令フォーマット300を含む拡張を備えたx86命令セットをサポートする。本発明の一実施例では、設計を簡略化するためスカラユニット2308及びベクトルユニット2310が別々のレジスタセットを利用しそれぞれスカラレジスタ2312及びベクトルレジスタ2314、それらの間で転送されるデータは、メモリに書き込まれ、レベル1L1キャッシュ2306からリードバックされ、本発明の他の実施例は、異なるアプローチを利用してもよい例えば、シングルレジスタセットを利用するか、又はライト及びリードバックなしに2つのレジスタファイルの間でデータが転送されることを可能にする通信パスを含むなど。L1キャッシュ2306は、スカラユニット及びベクトルユニットへのキャッシュメモリへの低遅延アクセスを可能にする。ベクトルフレンドリ命令フォーマットのロード-op命令と共に、これは、L1キャッシュ2306が拡張されたレジスタファイルと同様に扱うことができることを意味する。これは、特にイビクションヒントフィールド252Bによる多数のアルゴリズムのパフォーマンスを有意に向上させる。L2キャッシュ2304のローカルサブセットは、CPUコア毎に1つである別々のローカルサブセットに分割されるグローバルL2キャッシュの一部である。各CPUは、L2キャッシュ2304の自らのローカルサブセットへの直接的なアクセスパスを有する。CPUコアによりリードされたデータは、それのL2キャッシュサブセット2304に格納され、自らのローカルL2キャッシュサブセットにアクセスする他のCPUとパラレルに迅速にアクセス可能である。CPUコアにより書き込まれるデータは、それ自体のL2キャッシュサブセット2304に格納され、必要に応じて、他のサブセットからフラッシュされる。リングネットワークは、共有データのコヒーレンシを保障する。図23Bは、本発明の実施例による図23AのCPUコアの一部の分解図である。図23Bは、L1キャッシュ2304のL1データキャッシュ2306Aの部分とと共に、ベクトルユニット2310及びベクトルレジスタ2314に関するさらなる詳細を含む。具体的には、ベクトルユニット2310は、整数、シングル精度フロート及びダブル精度フロート命令を実行する16ワイドベクトル処理ユニットVPUである16ワイドALU2328を参照。VPUは、スウィズルユニット2320によるレジスタ入力のスウィズル処理、数値変換ユニット2322A~Bによる数値変換、及びメモリ入力に対する複製ユニット2324による複製をサポートする。ライトマスクレジスタ2326は、結果としてのベクトルライトをプリディケートpredicateすることを可能にする。レジスタデータは、例えば、マトリックス乗算をサポートするためなど、各種方法によりスウィズル可能である。メモリからのデータは、VPUレーンにわたって複製可能である。これは、グラフィックと非グラフィックパラレルデータ処理の双方において通常の処理である、キャッシュ効率を有意に増大する。リングネットワークは、CPUコア、L2キャッシュ及び他のロジックブロックなどのエージェントがチップ内で互いに通信することを可能にするため双方向である。各リングデータパスは、方向毎に512ビットワイドである。例示的なアウトオブオーダアーキテクチャ-図24図24は、本発明の実施例による例示的なアウトオブオーダアーキテクチャを示すブロック図である。具体的には、図24は、ベクトルフレンドリ命令フォーマット及びその実行を含むよう変更された周知の一例となるアウトオブオーダアーキテクチャを示す。図24において、矢印は2以上のユニットの間の接続を示し、矢印の方向はこれらのユニットの間のデータフローの方向を示す。図24は、実行エンジンユニット2410及びメモリユニット2415に接続されるフロントエンドユニット2405を有し、実行エンジンユニット2410はさらに、メモリユニット2415に接続される。フロントエンドユニット2405は、レベル2L2ブランチ予測ユニット2422に接続されるレベル1L1ブランチ予測ユニット2420を有する。L1及びL2ブランチ予測ユニット2420、2422は、L1命令キャッシュユニット2424に接続される。L1命令キャッシュユニット2424は、命令フェッチプリデコードユニット2428にさらに接続される命令変換ルックアサイドバッファTLB2426に接続される。命令フェッチプリでコードユニット2428は、デコードユニット2432にさらに接続される命令キューユニット2430に接続される。デコードユニット2432は、コンプレックスデコーダユニット2434と、3つのシンプルデコーダユニット2436、2438及び2440とを有する。デコードユニット2432は、マイクロコードROMユニット2442を有する。デコードユニット2432は、デコードステージセクションにおいて上述されたように動作してもよい。L1命令キャッシュユニット2424はさらにメモリユニット2415のL2キャッシュユニット2448に接続される。命令TLBユニット2426はさらに、メモリユニット2415において第2レベルTLBユニット2446に接続される。デコードユニット2432、マイクロコードROMユニット2442及びループストリーム検出ユニット2444はそれぞれ、実行エンジンユニット2410においてリネーム/割当ユニット2456に接続される。実行エンジンユニット2410は、リタイアメントユニット2474及び統合スケジューラユニット2458に接続されるリネーム/割当ユニット2456を含む。リタイアメントユニット2474はさらに、実行ユニット2460に接続され、リオーダバッファユニット2478を有する。統合スケジューラユニット2458はさらに、実行ユニット2460に接続される物理レジスタファイルユニット2476に接続される。物理レジスタファイルユニット2476は、ベクトルレジスタユニット2477A、ライトマスクレジスタユニット2477B及びスカラレジスタユニット2477Cを有し、これらのレジスタユニットは、ベクトルレジスタ510、ベクトルマスクレジスタ515及び汎用レジスタ525を提供し、物理レジスタファイルユニット2476は、図示しない追加的なレジスタファイルを有してもよい例えば、MMXPacked整数フラットレジスタファイル550にエイリアシングされたスカラ浮動小数点スタックレジスタファイル545など。実行ユニット2460は、3つの混合されたスカラ及びベクトルユニット2462、2464及び2472、ロードユニット2466、ストアアドレスユニット2468、ストアデータユニット2470を含む。ロードユニット2466、ストアアドレスユニット2468及びストアデータユニット2470はそれぞれ、メモリユニット2415のデータTLBユニット2452にさらに接続される。メモリユニット2415は、データTLBユニット2452に接続される第2レベルTLBユニット2446を有する。データTLBユニット2452は、L1データキャッシュユニット2454に接続される。L1データキャッシュユニット2454はさらに、L2キャッシュユニット2448に接続される。いくつかの実施例では、L2キャッシュユニット2448はさらに、メモリユニット2415の内部及び/又は外部においてL3及びより上位のキャッシュユニット2450に接続される。例えば、例示的なアウトオブオーダアーキテクチャは、1命令フェッチプリデコードユニット2428はフェッチ及び長さ復号化ステージ1910及び2012、2デコードユニット2432はデコードステージ1920を実行し、3リネーム/割当ユニット2456は割当ステージ2122及びリネーミングステージ2124を実行し、4統合スケジューラ2458はスケジュールステージ2126を実行し、5物理レジスタファイルユニット2476、リオーダバッファユニット2478及びメモリユニット2415はレジスタリード/メモリリードステージ1930を実行し、実行ユニット2460は実行/データ変換ステージ2245を実行し、6メモリユニット2415及びリオーダバッファユニット2478はライトバック/メモリライトステージ1960を実行し、7リタイアメントユニット2474はROBリード2162ステージを実行し、8各種ユニットは例外処理ステージ2164に関与してもよく、9リタイアメントユニット2474及び物理レジスタファイルユニット2476はコミットステージ2166を実行することによって、プロセスパイプライン2200を実現してもよい。例示的なシングルコア及びマルチコアプロセッサ-図29図29は、本発明の実施例による統合されたメモリコントローラ及びグラフィックを備えたシングルコアプロセッサ及びマルチコアプロセッサ2900のブロック図である。図29における実線のボックスは、シングルコア2902A、システムエージェント2910及び1以上のバスコントローラユニット2916のセットを備えたプロセッサ2900を示し、破線のボックスの任意的な追加は、複数のコア2902A~N、システムエージェントユニット2910における1以上の統合されたメモリコントローラユニット2914のセット及び統合されたグラフィックロジック2908を備えた他のプロセッサ2900を示す。メモリ階層は、コア内の1以上のレベルのキャッシュ、1以上の共有キャッシュユニット2906のセット、及び統合されたメモリコントローラユニット2914のセットに接続される外部メモリ図示せずを有する。共有キャッシュユニット2906のセットは、レベル2L2、レベル3L3、レベル4L4又は他のレベルのキャッシュなどの1以上の中間レベルキャッシュ、ラストレベルキャッシュLLC及び/又はこれらの組み合わせを含むものであってもよい。一実施例では、リングベースインターコネクトユニット2912は、統合されたグラフィックロジック2908、共有キャッシュユニット2906のセット及びシステムエージェントユニット2910を相互接続するが、他の実施例は、当該ユニットを相互接続するための何れかの個数の周知の技術を利用してもよい。いくつかの実施例では、コア2902A~Nの1以上はマルチスレッド処理が可能である。システムエージェント2910は、コア2902A~Nを調整及び実行する上記のコンポーネントを含む。システムエージェントユニット2910は、例えば、パワー制御ユニットPCU及びディスプレイユニットなどを含むものであってもよい。PCUは、コア2902A~N及び統合グラフィックロジック2908の電力状態を調整するのに必要なロジック及びコンポーネントであってもよく、又は含むものであってもよい。ディスプレイユニットは、1以上の外部接続されたディスプレイを分割するためのものである。コア2902A~Nは、アーキテクチャ及び/又は命令セットに関して同質又は異質であってもよい。例えば、コア2902A~Nの一部はインオーダであり例えば、図23A及び23Bに示されるものなど、他のものはアウトオブオーダである図24などに示されるものなど。他の例として、コア2902A~Nの2以上は、同じ命令セットを実行可能であってもよく、他のものは当該命令セットのサブセットのみ又は異なる命令セットを実行可能であってもよい。コアの少なくとも1つは、ここに接続されるベクトルフレンドリ命令フォーマットを実行可能である。プロセッサは、カリフォルニア州サンタクララのインテルコーポレイションから入手可能なCoreTMi3,i5,i7,2Duo及びQuad、XeonTM又はItaniumプロセッサなどの汎用プロセッサであってもよい。あるいは、プロセッサは、他の企業からのものであってもよい。プロセッサは、例えば、ネットワーク又は通信プロセッサ、圧縮エンジン、グラフィックプロセッサ、コプロセッサ、埋め込みプロセッサなどの特定用途プロセッサであってもよい。プロセッサは、1以上のチップ上に実現されてもよい。プロセッサ2900は、BiCMOS、CMOS又はNMOSなどの複数のプロセス技術の何れかを利用して1以上の基板上に実現されてもよく、及び/又はその一部であってもよい。例示的なコンピュータシステム及びプロセッサ-図25~28図25~27は、プロセッサ2900を含むのに適した一例となるシステムであり、図28は、コア2902の1以上を含むものであってもよい一例となるSoCSystemonChipである。ラップトップ、デスクトップ、携帯PC、PDAPersonalDigitalAssistant、エンジニアリングワークステーション、サーバ、ネットワーク装置、ネットワークハブ、スイッチ、埋め込みプロセッサ、DSPDigitalSignalProcessor、グラフィック装置、ビデオゲーム装置、セットトップボックス、マイクロコントローラ、携帯電話、ポータブルメディアプレーヤー、携帯装置及び他の各種電子装置について当該分野で知られる他のシステム設計及びコンフィギュレーションがまた適している。一般に、ここに開示されるようなプロセッサ及び/又は他の実行ロジックを搭載可能な各種システム又は電子装置が一般に適している。図25を参照して、本発明の一実施例によるシステム2500のブロック図が示される。システム2500は、GMCHGraphicsMemoryControllerHub2520に接続される1以上のプロセッサ2510、2515を含むものであってもよい。図25において、追加的なプロセッサ2515の任意的な性質は破線により示される。各プロセッサ2510、2515は、あるバージョンのプロセッサ2900であってもよい。しかしながら、統合されたグラフィックロジック及び統合されたメモリ制御ユニットはプロセッサ2510、2515に存在する可能性は低いことに留意すべきである。図25は、GMCHがDRAMDynamicRandomAccessMemoryなどであってもよいメモリ2540に接続されてもよいことを示す。DRAMは、少なくとも1つの実施例について不揮発性キャッシュに関連付けされてもよい。GMCH2520は、チップセット又はチップセットの一部であってもよい。GMCH2520は、プロセッサ2510、2515と通信し、プロセッサ2510、2515とメモリ2540との間のやりとりを制御してもよい。GMCH2520はまた、プロセッサ2510、2515とシステム2500の他の要素との間のアクセラレートバスインタフェースとして機能してもよい。少なくとも1つの実施例について、GMCH2520は、フロントサイドバスFSB2595などのマルチドロップバスを介しプロセッサ2510、2515と通信する。さらに、GMCH2520は、ディスプレイ2545フラットパネルディスプレイなどに接続される。GMCH2520はさらに、各種周辺装置とシステム2500とを接続するのに利用されてもよい入出力I/OコントローラハブICH2550に接続される。図25の実施例などにおいて、他の周辺装置2570と共にICH2550に接続される離散グラフィック装置であってもよい外部グラフィック装置2560が示される。あるいは、さらなる又は異なるプロセッサがまた、システム2500に存在してもよい。例えば、追加的なプロセッサ2515は、プロセッサ2510と同じ追加的なプロセッサ、プロセッサ2510について異質な又は非対称な追加的なプロセッサ、アクセラレータグラフィックアクセラレータ又はDSPDigitalSignalProcessingユニットなど、FPGAFieldProgrammableGateArray又は他の何れかのプロセッサを含むものであってもよい。アーキテクチャ、マイクロアーキテクチャ、サーマル、電力消費特性などを含むメリットのメトリックの範囲に関して物理リソース2510、2515との間に各種装置が存在しうる。これらの相違は、処理要素2510、2515の間で非対称性及び異質性として効果的に示される。少なくとも1つの実施例について、各種処理要素2510、2515は同一のダイパッケージにあってもよい。図26を参照して、本発明の実施例による第2システム2600のブロック図が示される。図26に示されるように、マルチプロセッサシステム2600はポイントツーポイントインターコネクトシステムであり、ポイントツーポイントインターコネクト2650を介し接続される第1プロセッサ2670と第2プロセッサ2680とを含む。図26に示されるように、プロセッサ2670、2680の各々はあるバージョンのプロセッサ2900であってもよい。あるいは、プロセッサ2670、2680の1以上は、アクセラレータ又はFPGAなどのプロセッサ以外の要素であってもよい。2つのみのプロセッサ2670、2680と共に示されるが、本発明の範囲はこれに限定されるものでないことが理解されるべきである。他の実施例では、1以上の追加的な処理要素が所与のプロセッサに存在してもよい。プロセッサ2670は、IMCIntegratedMemoryControllerハブ2672とポイントツーポイントP-Pインタフェース2676、2678とを含むものであってもよい。同様に、第2プロセッサ2680はIMC2682とP-Pインタフェース2686、2688とを有してもよい。プロセッサ2670、2680は、PtPインタフェース回路2678、2688を用いてポイントツーポイントPtPインタフェース2650を介しデータをやりとりしてもよい。図26に示されるように、IMC2672及び2682は、プロセッサと各自のメモリ、すなわち、各プロセッサにローカルに付属されるメインメモリの一部であってもよいメモリ2642、2644とを接続する。プロセッサ2670、2680はそれぞれ、ポイントツーポイントインタフェース回路2676、2694、2686、2698を用いて個別のP-Pインタフェース2652,2654を介しチップセット2690とデータをやりとりしてもよい。チップセット2690はまた、ハイパフォーマンスグラフィックインタフェース2639を介しハイパフォーマンスグラフィック回路2638とデータをやりとりしてもよい。共有キャッシュ図示せずは、プロセッサが低電力モードに置かれている場合、プロセッサのローカルキャッシュ情報が共有キャッシュに格納されるように、双方のプロセッサの外部の何れかのプロセッサに含まれてもよく、P-Pインターコネクトを介しプロセッサに接続されてもよい。チップセット2690は、インタフェース2696を介し第1バス2616に接続されてもよい。一実施例では、第1バス2616は、本発明の範囲はこれに限定されるものでないが、PCIPeripheralComponentInterconenctPCIバス、PCIExpressバスや他の第3世代I/Oインターコネクトバスなどのバスであってもよい。図26に示されるように、各種I/O装置2614が、第1バス2616と第2バス2620とを接続するバスブリッジ2618と共に、第1バス2616に接続されてもよい。一実施例では、第2バス2620は、LPCLowPinCountバスであってもよい。キーボード/マウス2622、通信装置2626及び一実施例ではコード2630を有してもよいディスクドライブ又は他のマスストレージ装置などのデータストレージユニット2628などを含む各種装置が、第2バス2620に接続されてもよい。さらに、オーディオI/O2624が、第2バス2620に接続されてもよい。他のアーキテクチャが可能であることに留意されたい。例えば、図26のポイントツーポイントアーキテクチャの代わりに、システムはマルチドロップバス又は他のアーキテクチャを実現してもよい。図27を参照して、本発明の実施例による第3システム2700のブロック図が示される。図26及び27の同様の要素は同様の参照番号を有し、図26の特定の態様は、図27の他の態様を不明りょうにすることを回避するため、図27から省略された。図27は、処理要素2670、2680はそれぞれ統合されたメモリ及びI/O制御ロジックCL2672、2682を有してもよいことを示す。少なくとも1つの実施例について、CL2672、2682は、図29及び26に関して上述されたものなどのメモリコントローラハブロジックIMCを含むものであってもよい。さらに、CL2672、2682はまた、I/O制御ロジックを有してもよい。図27は、メモリ2642、2644がCL2672、2682に接続されるだけでなく、I/O装置2714がまた制御ロジック2672、2682に接続されることを示す。従来のI/O装置2715はチップセット2690に接続される。図28を参照して、本発明の実施例によるSoC2800のブロック図が示される。図29の同様の要素は同様の参照番号を有する。また、破線のボックスは、より先進的なSoCに関する任意的な特徴である。図28において、インターコネクトユニット2802は、1以上のコア2902A~Nのセットと共有キャッシュユニット2906を有するアプリケーションプロセッサ2810、システムエージェントユニット2910、バスコントローラユニット2916、統合されたメモリコントローラユニット2914、統合されたグラフィックロジック2908を有する1以上のメディアプロセッサ2802、スチル及び/又はビデオカメラ機能を提供する画像プロセッサ2824、ハードウェアオーディオアクセラレーションを提供するオーディオプロセッサ2828、ビデオ符号化/復号化アクセラレーションを提供するビデオプロセッサ2828、SRAMStaticRandomAccessMemoryユニット2830、DMADirectMemoryAccessユニット2832、及び1以上の外部ディスプレイに接続するためのディスプレイユニット2840に接続されてもよい。ここに開示される機構の実施例は、ハードウェア、ソフトウェア、ファームウェア又は当該実現形態のアプローチの組み合わせにより実現されてもよい。本発明の実施例は、少なくとも1つのプロセッサ、ストレージシステム揮発性及び不揮発性メモリ及び/又はストレージ要素を含む、少なくとも1つの入力装置及び少なくとも1つの出力装置を有するプログラム可能なシステム上で実行されるコンピュータプログラム又はプログラムコードとして実現されてもよい。図26に示されるコード2630などのプログラムコードは、ここに開示される機能を実行し、出力情報を生成するため入力データに適用されてもよい。出力情報は、既知の方法により1以上の出力装置に適用されてもよい。本出願のため、処理システムは、DSPDigitalSignalProcessor、マイクロコントローラ、ASICApplicationSpecificIntegratedCircuit又はマイクロプロセッサなどのプロセッサを有する何れかのシステムを有する。プログラムコードは、処理システムと通信するためハイレベルな手続き型又はオブジェクト指向型プログラミング言語により実現されてもよい。プログラムコードはまた、所望される場合、アセンブリ又は機械言語により実現されてもよい。実際、ここに開示される機構は、何れか特定のプログラミング言語に範囲が限定されるものでない。何れのケースでも、言語はコンパイル又はインタープリットされた言語であってもよい。少なくとも1つの実施例の1以上の態様は、マシーンにより読み込まれると、当該マシーンにここに開示された技術を実行するためのロジックを構成させるプロセッサ内の各種ロジックを表すマシーン可読媒体に格納される命令により実現されてもよい。IPコアとして知られるこのような表現は、有形なマシーン可読媒体に格納され、ロジック又はプロセッサを実際に作製する製造マシーンにロードするため各種カスタム又は製造施設に供給されてもよい。このようなマシーン可読記憶媒体は、限定することなく、ハードディスクなどの記憶媒体、フロッピー登録商標ディスク、光ディスクCD-ROM、CD-RW及び光磁気ディスクを含む他の何れかのタイプのディスク、ROM、RAM、DRAM、SRAM、EPROM、フラッシュメモリ、EEPROMなどの半導体装置、磁気若しくは光カード又は電子命令を格納するのに適した他の何れかのタイプの媒体を含む、マシーン又は装置により製造又は形成される非一時的で有形な物の構成を含むものであってもよい。従って、本発明の実施例はまた、ここに開示される構成、回路、装置、プロセッサ及び/又はシステムの特徴を規定するHDLHardwareDescriptionLanguageなどの設計データを含む又はベクトルフレンドリ命令フォーマットの命令を含む非一時的な有形のマシーン可読媒体を含む。このような実施例はまた、プログラムと呼ばれてもよい。いくつかのケースでは、命令コンバータは、ソース命令セットからターゲット命令セットに命令を変換するため利用されてもよい。例えば、命令コンバータは、命令をコアにより処理される1以上の他の命令に変換例えば、静的バイナリ変換、動的コンパイルを含む動的バイナリ変換などを利用して、モーフィング、エミュレート又はコンバートしてもよい。命令コンバータは、ソフトウェア、ハードウェア、ファームウェア又はこれらの組み合わせにより実現されてもよい。命令コンバータは、オンプロセッサ、オフプロセッサ、又は部分的にオン及びオフのプロセッサであってもよい。図30は、本発明の実施例によるソース命令セットのバイナリ命令をターゲット命令セットのバイナリ命令に変換するためのソフトウェア命令コンバータの利用を示すブロック図である。図示された実施例では、命令コンバータは、ソフトウェア、ファームウェア、ハードウェア又はこれらの各種組み合わせにより実現されてもよいが、ソフトウェア命令コンバータである。図30は、ハイレベル言語3002のプログラムが、少なくとも1つのx86命令セットコア3016によりプロセッサにより直接実行されてもよいx86バイナリコード3006を生成するため、x86コンパイラ3004を利用してコンパイルされてもよい。コンパイルされた命令の一部はベクトルフレンドリ命令フォーマットによるものであることが仮定される。少なくとも1つのx86命令セットコア3016を備えたプロセッサは、少なくとも1つのx86命令セットコアを備えたインテルプロセッサと実質的に同じ結果を実現するため、1インテルx86命令セットコアの命令セットの実質的な一部、又は2少なくとも1つのx86命令セットコアを備えたインテルプロセッサ上で実行されるよう対象とされたオブジェクトコードバージョンのアプリケーション若しくは他のソフトウェアを互換的に実行又は処理することによって、少なくとも1つのx86命令セットコアを備えたインテルプロセッサと実質的に同じ機能を実行可能な何れかのプロセッサを表す。x86コンパイラ3004は、追加的なリンケージ処理によって又はなしに少なくとも1つのx86命令セットコア3016を備えたプロセッサ上で実行可能なx86バイナリコード3006オブジェクトコードなどを生成するよう動作可能なコンパイラを表す。同様に、図30は、少なくとも1つのx86命令セットコア3014なしにプロセッサにより直接実行されてもよい他の命令セットバイナリコード3010を生成するため、他の命令セットコンパイラ3008を利用してコンパイルされてもよい例えば、カリフォルニア州SunnyvaleのARMHoldingsのARM命令セットを実行する、及び/又はカリフォルニア州SunnyvaleのMIPSTechnologiesのMIPS命令セットを実行するコアを備えたプロセッサなど。命令コンバータ3012は、x86バイナリコード3006をx86命令セットコア3014なしにプロセッサに直接実行されるコードに変換するのに利用される。この変換されたコードは、これが可能な命令コンバータが生成するのが困難であるため、他の命令セットバイナリコード3010と同じである可能性はないが、変換されたコードは全体処理を実行し、他の命令セットからの命令から生成されてもよい。従って、命令コンバータ3012は、エミュレーション、シミュレーション又は他の何れかのプロセスを介しx86命令セットプロセッサ又はコアを有しないプロセッサ又は他の電子装置がx86バイナリコード3006を実行することを可能にするソフトウェア、ファームウェア、ハードウェア又はこれらの組み合わせを表す。ここに開示されるベクトルフレンドリ命令フォーマットによる命令の特定の処理は、ハードウェアコンポーネントにより実行され、当該処理を実行する命令によりプログラムされた回路又は他のハードウェアコンポーネントをもたらす又は少なくとも生じさせるのに利用されるマシーン実行可能な命令により実現されてもよい。当該回路は、2,3例をあげると、汎用又は特定用途プロセッサ又はロジック回路を含むものであってもよい。当該処理はまた、任意的にはハードウェアとソフトウェアとの組み合わせにより実行されてもよい。実行ロジック及び/又はプロセッサは、命令により指定された結果オペランドを格納するため、マシーン命令から導出されるマシーン命令又は1以上の制御信号に対応する特定の回路又は他のロジックを含むものであってもよい。例えば、ここに開示される命令の実施例は、図25~28の1以上のシステムにおいて実行されてもよく、ベクトルフレンドリ命令フォーマットの命令の実施例は、システムにおいて実行されるプログラムコードに格納されてもよい。さらに、これらの図の処理要素は、ここに開示される詳細なパイプライン及び/又はアーキテクチャ例えば、インオーダ及びアウトオブオーダアーキテクチャなどの1つを利用してもよい。例えば、インオーダアーキテクチャのデコードユニットは、命令を復号化し、復号化された命令をベクトル又はスカラユニットなどにわたしてもよい。上記説明は、本発明の好適な実施例を示すためのものである。上記の説明から、特に成長が速く、さらなる発展が容易には予想されない当該技術エリアにおいて、本発明は、添付した請求項及びその均等の範囲内の本発明の原理から逸脱することなく当業者により構成及び詳細について変更可能である。例えば、方法の1以上の処理は組み合わせ又は分離されてもよい。他の実施例ベクトルフレンドリ命令フォーマットを直接実行する実施例が説明されたが、本発明の他の実施例は、異なる命令セットを実行するプロセッサ例えば、カリフォルニア州SunnyvaleのMIPSTechnologiesのMIPS命令セットを実行するプロセッサ、カリフォルニア州SunnyvaleのARMHoldingsのARM命令セットを実行するプロセッサなど上で実行されるエミュレーションレイヤを介しベクトルフレンドリ命令フォーマットを実行してもよい。また、図のフロー図は本発明の特定の実施例により実行される処理の特定の順序を示しているが、当該順序は一例であることが理解されるべきである。他の実施例は、異なる順序により処理を実行し、特定の処理を合成し、特定の処理をオーバラップするなどしてもよい。上記説明では、説明のために多数の具体的な詳細が、本発明の実施例の完全な理解を提供するため提供されている。しかしながら、1以上の他の実施例がこれらの具体的な詳細の一部なしに実現可能であることが、当業者に明らかであろう。開示される特定の実施例は、本発明を限定するものでなく、本発明の実施例を説明するため提供される。本発明の範囲は、上述した特定の具体例でなく以下の請求項により決定される。"