プロセッサにおいて丸め命令および直接値immediatevalueを受領する段階と;前記直接値の丸めモードオーバーライド指標がアクティブであるかどうかを判定する段階と;もしアクティブであれば、前記直接値の丸めモードフィールドを取得し、ここで、前記丸めモードフィールドは前記オーバーライド指標とは別個であり、前記丸め命令に応答して、前記直接値に記述されている丸めモードに従って前記プロセッサの浮動小数点ユニットにおいてソースオペランドに対して丸め処理を実行する段階とを有する、方法。前記直接値の前記丸めモードオーバーライド指標がアクティブでなければ、前記丸め命令に応答して、前記プロセッサの制御レジスタ内に記述されている丸めモードに従って前記丸め処理を実行する段階をさらに有する、請求項1記載の方法。前記丸め処理の実行の間、デフォルト丸めモードを含む制御レジスタの値を維持することをさらに含む、請求項1記載の方法。第一の単一命令複数データSIMDオペランドの少なくとも一つの要素を丸める第一の命令を、前記第一の命令によって規定される、複数のモードのうちの一つのモードに従って実行する実行論理と、前記実行論理に結合されたコントローラとを有するプロセッサであって、前記コントローラは前記第一の命令および該第一の命令に関連付けられた直接データ要素を受領し、前記直接データ要素のオーバーライド指標に基づいて、該オーバーライド指標を復号することによってデフォルト丸めモードがオーバーライドされるべきかどうかを判定し、前記実行論理に丸めを制御するよう制御情報を送付し、前記実行論理は、デフォルト丸めモードがオーバーライドされるべきである場合、前記直接データ要素の、前記オーバーライド指標とは別個の丸めモードフィールドに従って、前記少なくとも一つの要素を丸める、プロセッサ。前記複数のモードのうちの少なくとも一つのモードは前記実行論理の制御レジスタに記憶されているデフォルト丸めモードとは異なる、請求項4記載のプロセッサ。前記複数のモードのうちの前記少なくとも一つのモードに従っての前記第一の命令の実行の間、前記デフォルト丸めモードが前記制御レジスタ内に記憶されたままである、請求項5記載のプロセッサ。前記実行論理が前記少なくとも一つの要素を丸めて整数の値をもつ浮動小数点値にし、前記第一のSIMDオペランドは限られた精度の浮動小数点値を含む、請求項4記載のプロセッサ。前記実行論理が前記少なくとも一つの要素を丸めて整数値にし、前記第一のSIMDオペランドは浮動小数点値を含む、請求項4記載のプロセッサ。そのような丸め処理は種々の数学的演算の一部として実行されることができるが、一部のプロセッサアーキテクチャでは、データ要素に対して丸め処理を、単体の操作として実行する、あるいは複数の複雑なステップの必要なしに実行するための機能が限られていたり、あるいは全くなかったりする。たとえば、プロセッサはFP値の整数値への丸めをデフォルトの丸めモードに従って実行するよう構成されていることがある。しかしながら、所与のソースオペランドは、さまざまな理由のため、別のモードに従って丸められる必要があることがある。そのような処理を実施するため、プロセッサの現在の構成設定状態configurationstateを保存し、所望される丸めモードに関する情報を含む新しい構成設定状態をロードし、丸め処理を実行し、もとのプロセッサ状態を復元するという入り組んだステップが生起することがある。これらの処理は時間がかかり、計算量を高め、過剰なプロセッササイクルを消費することがある。さらに、プロセッサにおいて実行される丸め処理は典型的には限られた量の丸めモード、すなわち米国電気電子技術者協会IEEEInstituteofElectricalandElectronicsEngineers規格75419851985年発表に述べられている丸めモードに従って生起するが、新しいプログラミング言語が進化するにつれ、他の丸めモードのサポートが望ましいことがありうる。解決しようとする課題は請求項記載の発明によって解決される。さまざまな実施形態において、プロセッサにおいて、たとえば該プロセッサの浮動小数点ユニットFPUfloatingpointunitにおいて丸め処理を効率的に実行するために、命令セットアーキテクチャISAinstructionsetarchitectureの複数の丸め命令が使用されうる。米国電気電子技術者協会IEEEInstituteofElectricalandElectronicsEngineers規格75419851985年発表本稿では二進浮動小数点演算のためのIEEE規格またはIEEE規格754に述べられている丸めモードに加えて、追加的な丸めモードに従って丸め処理を実行するために諸実施形態が使用されうる。たとえばいくつかの実施形態では、命令が、下記に述べるような中間点で零から遠いほうへのhalfwayawayfromzero丸め処理および零から遠いほうへのawayfromzero丸め処理のサポートを提供してもよい。さらに、これらの丸め処理は多くのデータ型とともに使用されうる。いくつかの実装では、丸め処理は単一命令複数データSIMDsingleinstructionmultipledataデータ型に対して実行されることができ、それにより命令は、パックされたデータ要素といった拡張されたデータ型に対して実行されることができる。パックされたデータ要素packeddataelementでは、複数のデータ要素が、プロセッサの拡張されたレジスタのような単一の位置にパックされる。柔軟性を受け入れ、効率的な命令実行を提供するために、諸実施形態は、ソースオペランドに対して実行されることのできるISAベースの命令を提供しうる。これらのISAベースの命令は、ソースオペランドの最も近い整数値への丸めを実行する丸め処理のさまざまな実装であってよい。そのようなソースオペランドはすでに限られた精度のフォーマットにあってもよいすなわち、算術演算の結果ではなくレジスタ/メモリから読まれたデータ。そのような命令は、マルチメディアアプリケーション、ゲームアプリケーションなどを含むさまざまなアプリケーションに使用されうる。さらに、諸実施形態は、さまざまなプログラミング言語に適用可能でありうる丸め処理を可能にするコンパイラベースのプリミティブにおいて実装されてもよい。さまざまな実施形態において、丸め命令は、ソースオペランドとして浮動小数点数を取り、それを最も近い整数値に丸め、結果をやはり整数値をもつ浮動小数点値として記憶しうることを注意しておく。さまざまな実施形態において、実行の制御は、少なくとも部分的には、命令とともに受領された情報、たとえば命令とともに受信された直接データimmediatedataに基づいて扱われうる。種々の実装において、そのような直接データは、プロセッサによって現在使用中のデフォルト丸めモードをオーバーライドしうる。そのようなオーバーライドの場合には、直接データはさらに丸めモードの制御を提供しうる。さらに、直接データは精度例外precisionexceptionsのオーバーライドすなわち精度抑制precisionsuppressionを提供しうる。こうして、直接データは、特定の丸め処理の非固定制御nonstickycontrolを提供し、それにより該処理が最小限のサイクル数で実行されうるようにするために使用されうる。これがそうでありうるのは、命令に付随して受信された直接データが丸め制御情報を含むとき、構成設定レジスタ内に存在するそのような情報を更新する必要がないことがありうるからである。ここで、構成設定レジスタは、拡張された制御状態レジスタCSRcontrolandstatusregister、たとえばインテル登録商標アーキテクチャたとえばIA32アーキテクチャに従ってプロセッサ内に存在するマルチメディア拡張CSRMXCSRmultimediaextensionCSRのようなものである。しかしながら、諸実施形態はさまざまなプロセッサ型において使用されうること、本発明の範囲がこの点で限定されるものではないことを理解されたい。ここで図1を参照すると、本発明のある実施形態に基づく方法の流れ図が示されている。図1に示されるように、方法100は、プロセッサ内で丸め命令および付随する直接データを受信することによって始まりうるブロック110。たとえば、多くの実装において、ユーザーレベル命令、たとえばISAベースの命令がプロセッサにおいて受信されうる。該命令に加え、それに付随する直接データが提供されうる。のちにさらに述べるように、そのような直接データは、処理のさまざまな側面を制御するための複数のフィールドを含みうる。引き続き図1を参照すると、制御はブロック110から菱形115に進む。菱形115では、直接データが構成設定レジスタの丸めモードをオーバーライドするかどうかが決定される。すなわち、直接データのフィールドが、デフォルト丸めモードがオーバーライドされるべきかどうかを示すオーバーライド指標を含んでいてもよい。さまざまな実施形態において、そのようなデフォルト丸めモードは、CSR、たとえばMXCSRのような構成設定レジスタのフィールド内に存在していてもよい。ただし、本発明の範囲はこの点に関して限定されるものではない。直接データがオーバーライド指標を含む場合、制御はブロック120に進む。ブロック120では、前記命令によって指定されたソースオペランドが、プロセッサのたとえば浮動小数点ユニットFPUに送付されうる。さらに、ソースオペランドは、丸め処理の丸めモードを制御するための情報とともに送付されうる。制御情報は直接データから、すなわち直接データの丸めモードフィールドに記述されているとおりに得られてもよい。のちにさらに述べるように、いくつかの実装では、プロセッサの制御選択器ユニットのような制御ユニットが前記命令および前記直接データを受信し、前記直接データを復号してデフォルト丸めモードがオーバーライドされるべきかどうかを決定し、もしそうであれば、直接データに記述されている丸めモードを得る。引き続き図1を参照すると、菱形115においてもし代わりに、直接データがオーバーライド指標を含まないと判定される場合、制御はブロック125に進む。ブロック125では、ソースオペランドは、FPUにおける実行のために送付されうる。さらに、丸め処理が、たとえば構成設定レジスタに記述されているデフォルト丸めモードに基づいて実行されうる。いずれにせよ、ブロック120および125のどちらからも、制御は、丸め処理が実行されうるブロック130に進む。丸め処理は、入力すなわちソースオペランドの端数精度を丸めモードに従って除去する。さまざまな実施形態において、丸め処理を実行する種々の仕方が実現されうる。たとえば、多くの実装では、丸め処理を実行するために、FPUが加算器および丸めユニットを含みうる。IEEE規格754に従った丸めモードを実行するために、加算器は第一のオペランドとしてのソースオペランドと、第二のオペランドについての定数値、たとえば0とを提供されうる。加算器の出力は次いで丸めユニットに供給され、該丸めユニットが前記の結果を選択された動作モードに従って丸めうる。こうして、丸めユニットは、その入力値を丸めて整数値をとる浮動小数点結果integralvaluedfloatingpointresultにしうる。他の諸実施形態では、IEEE規格754の丸めモードに加えて、追加的な丸めモードが実行されうる。そのような実装では、FPU加算器はソースオペランドと、第二のオペランドとしての、ソースオペランドの値および丸めモードに基づく特定のデータ値を供給されうる。これについてはのちにさらに述べる。次いで、丸め処理が前記結果に対して実行されうる。ここで、丸め処理はIEEE規格754の処理でもよい。拡張丸めモードのさらに別の実装では、ソースオペランドおよび0の値がFPU加算器への入力に与えられてもよく、結果として得られる値が次いで、丸めユニットに送られた制御情報に従って丸められてもよい。実行後、丸め処理の結果は行き先デスティネーションオペランドに記憶されてもよいブロック140。さまざまな実施形態において、行き先オペランドはプロセッサの拡張されたメモリレジスタであってよい。ただし、本発明の範囲はそのように限定されるものではない。さらに、丸め処理の間に精度例外が発生したかどうかが判定されてもよい菱形145。すなわち、丸め処理が例外を起こす不精確な結果を発展させたかどうかが判定されうる。もしそうでなければ、方法100は終結しうる。もしその代わり、精度例外が起こされている場合、制御は菱形150に進みうる。菱形150では、直接データが精度例外を抑制するフィールドを含むかどうかが判定されうる。すなわち、いくつかの実装では、直接データが抑制フィールドを含んでいてもよい。このフィールドの値が、精度例外が持ち上がった場合に関連する丸め命令が精度例外を抑制すべきかどうかを示しうる。精度抑制指標が存在する場合、たとえ精度例外が発生しても、さらなる行動は取られず、方法100は終結しうる。もしその代わり、直接データが精度例外を抑制する指標を含まない場合、制御はブロック160に進む。ブロック160において、精度例外フラグが状態レジスタ中にセットされうる。たとえば、いくつかの実装では、状態レジスタはMXCSRに対応しうる。ただし、本発明の範囲はこの点に関して限定されるものではない。状態レジスタ内のこのフラグの状態に基づいて、精度例外が持ち上げられraisedうるたとえば、フラグがマスクされていない場合。もしそうであれば、その例外に対処するために、たとえばソフトウェアハンドラを介した適切な処置が実行されうる。もしその代わりにフラグがマスクされている場合、たとえ精度例外が起こって、状態レジスタにフラグが立っていても、そのセットされたフラグに関して何の行動も取られなくてもよい。図1の実施形態におけるこの特定の実装を用いて記載されているが、本発明の範囲はこの点に関して限定されるものではないことは理解しておくべきである。ここで図2を参照すると、本発明のある実施形態に基づくプロセッサの一部分のブロック図が示されている。図2に示されるように、プロセッサ200は、レジスタ205これは汎用プロセッサレジスタであってもよいからの、たとえばマイクロ処理μop:microoperationによって生成された、はいってくる命令情報と、それに付随する直接データimmediatedataとを受領するよう結合されている制御選択器ユニット210を含みうる。マイクロ処理は、所与の丸め処理を実行するためにISAの単一命令に応じて生成されうる。さまざまな実施形態において、ハードウェア、ファームウェアまたはそれらの組み合わせで実装されうる制御選択器ユニット210が直接データを復号する。直接データに基づいて、たとえば現在の丸め制御状態220を記憶する制御もしくは構成設定レジスタにおいて表されているようなプロセッサの現在の丸めモードがオーバーライドされるべきかどうかが決定されうる。もしそうであれば、制御選択器ユニット210は直接データのモードフィールド、つまり丸めモードフィールドを復号して適正な丸めモードを決定しうる。制御選択器ユニット210は、浮動小数点ユニットFPU240に結合されていて、はいってくる情報に基づいて該ユニットに制御命令を与えてもよい。図2にさらに示されるように、いわゆる拡張されたXMMレジスタ230のような拡張されたレジスタファイルがプロセッサ200内に存在していてもよい。それは、命令において丸め処理のためのソースオペランドおよび行き先オペランドとしてはたらくよう指定されているレジスタを含みうる。このように、XMMレジスタ230は、FPU240にソースオペランドを与え、FPU240から行き先オペランドを受領するためにFPU240に結合されうる。さまざまな実施形態において、FPU240はデータに対して処理を実行するさまざまな回路を含みうる。図2の実施形態では、FPU240はFPU加算器242を含む。具体的には、図2に示されるように、FPU加算器242は、はいってくるオペランド、たとえば第一のソースオペランドおよび第二のソースオペランドすなわちオペランドS1およびS2を受領するよう結合されうる。FPU240はまた、FPU加算器242の出力に結合されたFPU丸め器244を含んでいてもよい。さまざまな実施形態において、FPU加算器242は無限精度をもつ演算結果を生成してもよい。しかしながら、記憶および他の制約から、結果は丸められて、所望のフォーマットの最終結果を、たとえば単精度または倍精度の浮動小数点要素を与えてもよい。したがって、FPU丸め器244は、無限に精密な結果をFPU加算器242から受領し、プロセッサ200の現在の丸めモードによって指定される、あるいは命令と一緒にすなわち制御選択器ユニット210を介して得られた直接データからの制御に基づく、丸め処理を実行しうる。FPU丸め器244は、一般に、FPU加算器242における数学的演算の結果として発生する限りなく精密な結果を受領してもよいが、さまざまな実装では、丸め命令と一緒に与えられるソースオペランドはすでに限られた精度のフォーマットにあってもよい。これらの例において、FPU丸め器244はその入力値たとえば、与えられた丸め命令のソースオペランドに対応するを受領し、たとえば最も近い整数値に対応する丸められた結果を生成しうる。こうして、与えられた丸め命令に基づいて、FPU240は、たとえばXMMレジスタ230の一つからの与えられたソースオペランドに対して、制御選択器ユニット210からの情報によって制御されるように丸め処理を実行しうる。さらに、丸め処理の完了に際し、結果はXMMレジスタ230内のたとえば別のレジスタに記憶されてもよい。処理の間に精度例外が発生する場合、通常、FP状態レジスタ225にそのことを示すフラグがセットされうる。しかしながら、さまざまな実施形態において、丸め命令に関連付けられた直接データが精度抑制を示す場合、そのようなフラグはセットされなくてもよい。図2の実施形態ではこの特定の実装について記載されているが、本発明の範囲がこの点に関して限定されるものではないことは理解しておくべきである。たとえば、いくつかの実施形態では、たとえば丸め制御状態roundingcontrolstate220およびFP状態レジスタFPstatusregister225によって表されるような、制御および状態の状態controlandstatusstateが、MXCSRのような単一のCSR内に記憶されてもよい。直接データは、さまざまな形で制御選択器ユニット210に与えられうることを注意しておく。たとえば、いくつかの実装では、直接データは単一バイトのデータ要素の形であってもよい。ただし、本発明の範囲はそれに限定されるものではない。さらに、直接データ要素内に制御情報をエンコードするさまざまな仕方が実現されうる。ここで図3を参照すると、本発明のある実施形態に基づく直接データ要素のブロック図が示されている。図3に示されるように、直接データ要素300は、オーバーライド指標310、モード制御フィールド320、精度オーバーライド指標330およびリザーブフィールド340を含む8ビット語であってもよい。図3の実施形態ではこの特定の実装について示しているが、本発明の範囲はこのように限定されるものではない。図3の実施形態において、オーバーライド指標310は、直接データ要素300に関連付けられた丸め命令のオーバーライド状態を決定するために使用されうる。下記の表1に示されるように、オーバーライド指標310は、デフォルトの丸めモードMXCSRのような構成設定レジスタによって表現されるようなのオーバーライドを示すために論理的な低レベルにセットされうる。論理的な高い値はデフォルトモードの使用を示す。オーバーライド指標310がデフォルト丸めモードがオーバーライドされるべきであることを示す場合、丸め命令に関連付けられる丸めモードを決定するために丸めモードフィールド320が復号されうる。下記の表2に示されるように、いくつかの実装では、IEEE規格754によって規定される4つの丸めモードを2つの拡張丸めモードとともに含む6つの丸めモードがサポートされうる。拡張丸めモードについてはのちにさらに論じる。直接データ要素300はさらに、精度抑制指標330を含む。この指標は、たとえ関連する命令の処理の間に精度例外が起こったとしても精度例外が状態レジスタ内の例外フラグのセットを引き起こさないようにする、不正確な結果の許容を示すためにセットされうる。具体的には、下記の表3に示されるように、精度抑制指標330は次の形を取りうる。精度抑制指標330はさまざまな言語、たとえばC99、フォートランおよびジャバのユーザーレベル命令との関連で使用されうることを注意しておく。最後に、いくつかの実施形態では、リザーブフィールド340は追加的な情報のためにリザーブされうる。さらに、表1~表3に記載される個別的な値は、指標およびフィールドの特定の位置およびサイズとともに、限定されるものではなく、さまざまな変更、修正および拡張が本発明の範囲内であることを注意しておく。上記のように、多くの実装において、丸め処理は、ISAの単一命令に応じて実行されうる。このようにして、ユーザーレベルのサポートが提供され、丸め処理は効率的に実行できる。所与のISAにおいて、複数のそのような丸め命令が存在し、個別的な丸め処理を扱うために利用可能であることがある。たとえば、倍精度および単精度の浮動小数点値やパックされた値およびスカラー値の丸めといったものである。これらの丸め命令は、浮動小数点データ要素の端数部分を切り捨てるために使用されてもよい。ISAレベルの命令の存在に加えて、直接データまたは他の制御フィールド情報のおかげで、プロセッサの現在のデフォルト状態を修正する必要なしに、他の属性のなかでも丸めモードの効率的なローカル制御が許容されうる。下記の表4に示されるように、さまざまな型のデータ要素に対する効率的な丸め処理を可能にするために、ISAには丸め命令のさまざまな種類が存在しうる。これらのISAベース命令がどのように機能するかの例として、ROUNDPD命令は、直接要素immediateelementすなわちIMM8において指定されている丸めモードによってソースオペランドすなわち、XMMレジスタまたはメモリから得られうる第二のオペランド内の2つの倍精度浮動小数点値を丸め、結果を行き先オペランドすなわち、XMMレジスタであってもよい第一のオペランドに入れるために使用されうる。直接要素は、丸め処理のための制御フィールドを指定しうる。先の表1~表3を参照すると、直接データのビット4すなわち図3の指標330が精度例外についてのプロセッサの振る舞いを制御しうる。一方、ビット0すなわち図3の指標310は丸めモード制御のソースを選択しうる。最後に、ビット31すなわち、図3のフィールド320は非固定丸めモード値を指定しうる。いくつかの実施形態では、いずれかのソースオペランドがシグナル発生非数SNaNsignalingnotanumberであれば、それは静穏NaNQNaNに変換されることを注意しておく。構成設定レジスタが非正規化数を0とみなすDAZdenormalsaszerosようセットされている場合、非正規化数は丸めの前に0に変換されうる。構成設定レジスタが非正規化数を0にフラッシュするFTZflushdenormalstozerosようセットされている場合、非正規化数は丸めの後で0に変換されうる。これらのISA命令がどのように機能しうるかのさらなる例として、ROUNDPS命令は、ソースオペランド内の4つのパックされた単精度浮動小数点値を丸め、結果を行き先オペランドに入れるために使用されうる。例示の目的のため、具体的な丸め命令は次の形を取りうる。ROUNDPSxmm0xmm1imm8最も近い整数への丸めこの命令は、第一のレジスタ、すなわちxmm1内のパックされた単精度値を取り、各値を直接データすなわちimm8の丸めモードによって記述されるように最も近い整数値に丸め、結果を第二のレジスタ、すなわちxmm0に記憶しうる。下記の表5は、ソースオペランドすなわちxmm1内に存在する、それぞれ限られた精度の浮動小数点値に対応する代表的な値と、行き先オペランドすなわちxmm0に記憶される、整数値をとる浮動小数点数、つまり元のソース値に最も近い整数値に対応する、結果として得られる丸められた値とを示している。さらなる実装では、丸め処理は、ソースFP値から整数値すなわち、整数値をとるFP値ではなくを生成する命令に応じてであってもよいことを注意しておく。他の実装は、より低い精度の浮動小数点表現への丸めを可能にしうる。よって、諸実施形態は、構成設定レジスタ内のデフォルト丸めモードまたは命令に関連付けられた直接データに記述されているローカル丸めモードのいずれかによって制御される、標準的な丸めモードまたは特殊化された丸めモードに従ってソース値を丸める効率的な手段を提供しうる。さまざまな実施形態において、直接データは、IEEE規格754の丸め処理とは異なる丸めモードを実行するような制御情報を提供しうる。これらの丸めモードは、中間点で零から遠いほうへの丸めroundhalfwayawayfromzeroおよび零から遠いほうへの丸めroundawayfromzeroの丸めモードを含みうる。ここで図4を参照すると、本発明のある実施形態に基づく丸め処理を実行する方法の流れ図が示されている。図4に示されるように、方法400は、これらの拡張された丸めモードを実行するために使用されうる。方法400は、ソースオペランドが0以上であるかどうかを判定することによって始まりうる菱形410。もしそうであれば、制御はブロック420に進み、所定の値がソースオペランドから減算されうるブロック420。たとえば、FP加算器が、選択されている特定の丸めモードに基づいて、ソースオペランドから所与の値を減算しうる。もちろん、この減算は、前記所定の値についての負の値との加算として実行されうる。次いで、選択された丸め処理が、このFP加算の結果に対して実行されうるブロック430。いくつかの実装では、打ち切りtruncate零への丸めroundtozeroとも呼ばれるのようなIEEE規格754丸め処理が前記結果に対して実行されて拡張された丸めモードの結果が得られるのでもよい。もしその代わりに菱形410においてソースオペランドが0より小さいと判定される場合、制御はブロック440に進む。ブロック440では、所定の値これは上記と同じ値であってもよいがFP加算器においてソースオペランドに加算されてもよい。次いで、ブロック450において、選択された丸め処理が前記結果に対して実行され、結果としての丸められた値が得られる。本発明の範囲はこの点に関して限定されるものではないが、中間点で零から遠いほうへの丸めの処理は、その所定の値として05の値を使ってもよい。一方、零から遠いほうへの丸めの処理は、1を使ってもよい。ここで、1とは、1より小さく1に等しくない、最も近い表現可能なFP値に対応する。単精度および倍精度のFP値について、05はそれぞれ0x3f000000および0x3fe0000000000000に対応しうる。単精度および倍精度のFP値について、-05はそれぞれ0xbf000000および0xbfe000000000000に対応しうる。単精度および倍精度のFP値について、1はそれぞれ0x3f7fffffおよび0x3fefffffffffffffに対応しうる。単精度および倍精度のFP値について、-1はそれぞれ0xbf7fffffおよび0xbfefffffffffffffに対応しうる。下記の表6には、これらの処理を実行するためのソースコードの例が示されている。これらの例において、処理ROUNDTOWARDZEROはIEEE規格754の打ち切り処理であり、加算/減算の結果に対して実行される。これらの拡張された丸めモードの処理を実行する際、前記所定の値は第二のソースオペランドとしてたとえば図2の実施形態におけるS2のようにFP加算器に与えられてもよいことを注意しておく。あるいはまた、実施形態によっては、他の丸め処理と同様に、第二のソースオペランドは0であってもよく、選択された拡張丸めモード処理を実施するために制御信号が丸めユニットに送られてもよい。このように、さまざまな実施形態において、丸めを実行するための向上が実現されうる。これらの向上は、制御レジスタの状態を保存し、ダミーFP演算を実行し、前記状態を再セットする、またさらには数を整数に変換して浮動小数点に戻す近似的な単純化といったさまざまな処理を実行する必要を回避しうる。不正確な精度例外を抑制することにより、準拠性が異なる言語の丸めのサポートが簡略化されうる。一方、実装は、たとえばC99言語における、ある種の丸め機能についての標準的な丸めモードに従ってもよい。諸実施形態は、多くの異なるシステム型において実装されうる。ここで図5を参照すると、本発明のある実施形態に基づくシステムのブロック図が示されている。図5に示されるように、マルチプロセッサシステム500はポイントツーポイント相互接続システムであり、ポイントツーポイントの相互接続550を介して結合された第一のプロセッサ570および第二のプロセッサ580を含む。図5に示されるように、プロセッサ570および580のそれぞれは、第一および第二のプロセッサコアすなわち、プロセッサコア574aおよび574bならびにプロセッサコア584aおよび584bを含むマルチコアプロセッサであってもよい。コアのそれぞれが、本発明の実施形態に基づいて、ISAレベルの命令に応じて丸め処理を実行しうることを注意しておく。第一のプロセッサ570はさらに、ポイントツーポイントのPPインターフェース576および578を含む。同様に、第二のプロセッサ580はPPインターフェース586および588を含む。図5に示されるように、メモリコントローラハブMCH572および582はプロセッサをそれぞれのメモリ、すなわちメモリ532およびメモリ534に結合させる。これらのメモリはそれぞれのプロセッサにローカルに取り付けられたメインメモリの部分であってもよい。第一のプロセッサ570および第二のプロセッサ580は、それぞれPP相互接続552および554を介してチップセット590に結合されうる。図5に示されるように、チップセット590はPPインターフェース594および598を含む。さらに、チップセット590は、チップセット590を高性能グラフィックエンジン538と結合するインターフェース592を含む。ある実施形態では、グラフィックエンジン538をチップセット590に結合させるために、先進グラフィックポートAGPAdvancedGraphicsPortバス539が使用されうる。AGPバス539は、米国カリフォルニア州サンタクララのインテルコーポレイションによって1998年5月4日に発表された、加速されたグラフィックポートインターフェースAcceleratedGraphicsPortInterface規格、第20版に準拠してもよい。あるいはまた、ポイントツーポイント相互接続539がこれらのコンポーネントを結合してもよい。次いで、チップセット590はインターフェース596を介して第一のバス516に結合されうる。ある実施形態では、第一のバス516は、PCIローカルバス規格、プロダクションバージョン、第21版、1995年6月、によって定義されるような周辺コンポーネント相互接続PCIPeripheralComponentInterconnectバスまたはPCIエクスプレスPCIExpress商標バスまたは他の第三世代の入出力IO相互接続バスであってもよい。ただし、本発明の範囲はそのように限定されるものではない。図5に示されるように、さまざまなIO装置514が、第一のバス516を第二のバス520に結合するバスブリッジ518とともに、第一のバス516に結合されうる。ある実施形態では、第二のバス520は低ピン数LPClowpincountバスであってもよい。第二のバス520にはさまざまな装置が結合されうる。それには、ある実施形態ではたとえば、キーボード/マウス522、通信装置526およびコード530を含みうるディスクドライブまたは他の大容量記憶装置といったデータ記憶ユニット528が含まれる。さらに、オーディオIO524が第二のバス520に結合されていてもよい。他のアーキテクチャが可能であることを注意しておく。たとえば、図5のポイントツーポイントアーキテクチャの代わりに、システムはマルチドロップバスまたは他のそのようなアーキテクチャを実装してもよい。実施形態は、コードにおいて実装されてもよく、記憶媒体上に記憶されてもよい。記憶媒体がその上に記憶された命令を有し、該命令が、システムが該命令を実行するようプログラムするために使用されるのである。記憶媒体は、これに限られないが、フロッピー登録商標ディスク、光ディスク、コンパクトディスク読み出し専用メモリCDROM、書き換え可能型コンパクトディスクCDRWおよび光磁気ディスクを含む任意の型のディスク、読み出し専用メモリROM、動的ランダムアクセスメモリDRAM、静的ランダムアクセスメモリSRAMといったランダムアクセスメモリRAM、消去可能なプログラム可能型読み出し専用メモリEPROM、フラッシュメモリ、電気的に消去可能なプログラム可能型読み出し専用メモリEEPROMといった半導体デバイス、磁気カードもしくは光カードまたは電子的な命令を記憶するために好適な他の任意の型の媒体を含みうる。本発明について、限られた数の実施形態に関して記載してきたが、当業者はそうした実施形態からの数多くの修正および変形を認識するであろう。付属の請求項は本発明の真の精神および範囲にはいるそのようなすべての修正および変形をカバーすることが意図されている。特願2009-528536の出願当初の特許請求の範囲は次のとおり。請求項1プロセッサにおいて丸め命令および直接値immediatevalueを受領する段階と;前記直接値の丸めモードオーバーライド指標がアクティブであるかどうかを判定する段階と;もしアクティブであれば、前記丸め命令に応答して、前記直接値に記述されている丸めモードに従って前記プロセッサの浮動小数点ユニットにおいてソースオペランドに対して丸め処理を実行する段階とを有する、方法。請求項2前記直接値の前記丸めモードオーバーライド指標がアクティブでなければ、前記丸め命令に応答して、前記プロセッサの制御レジスタ内に記述されている丸めモードに従って前記丸め処理を実行する段階をさらに有する、請求項1記載の方法。請求項3前記丸め処理の実行の間、デフォルト丸めモードを含む制御レジスタの値を維持することをさらに含む、請求項1記載の方法。請求項4丸められた結果を得るための第一のオペランドに対する丸め命令の実行を、前記丸め命令に関連付けられた制御フィールド内にオーバーライド指標が存在していれば、前記丸め命令に関連付けられた制御フィールド内に記述されている丸めモードに従って行う手段と;前記実行を行う手段に結合された記憶手段とを有する、システム。請求項5前記丸め命令および前記制御フィールドを受領し、前記制御フィールドの丸めモード部分を復号し、前記オーバーライド指標が存在していれば前記丸めモード部分から制御信号を生成する選択器手段をさらに有する、請求項4記載のシステム。請求項6前記実行を行う手段が、前記選択器手段からの制御信号に応答して前記第一のオペランドに対して丸め処理を実行する浮動小数点ユニットを有し、前記第一のオペランドが限られた精度の値をもつ、請求項5記載のシステム請求項7前記実行を行う手段のためのデフォルト丸めモードを記憶する制御レジスタをさらに有し、前記実行を行う手段が前記丸め命令の実行を、前記制御フィールド内に前記オーバーライド指標が存在していれば、前記デフォルト丸めモードとは異なる丸めモードに従って行う、請求項4記載のシステム。請求項8前記実行を行う手段が前記丸め命令を前記異なる丸めモードに従って実行することを、前記デフォルト丸めモードが前記制御レジスタに記憶されている間に行う、請求項7記載のシステム。請求項9前記実行を行う手段が前記異なる丸めモードを実行するのを、前記第一のオペランドが閾値以下である場合には前記第一のオペランドへの第一の値の加算を介して、そうでない場合には前記第一のオペランドへの第二の値の加算を介して行い、前記第一の値は前記第二の値の浮動小数点バージョンの正負を変えたものである、請求項7記載のシステム。請求項10命令が記憶されている機械可読媒体であって、前記命令は機械によって実行されたときに、該機械に:前記命令によって規定されるモードに従って丸め処理を実行する段階と;前記丸め命令の結果を第一の記憶領域に記憶する段階とを有する方法を実行させる、機械可読媒体。請求項11前記モードが、制御レジスタに記憶されているデフォルト丸めモードとは異なる丸めモードに従って前記丸め処理の実行を引き起こすものである、請求項10記載の機械可読媒体。請求項12前記方法がさらに、前記命令に関連付けられた直接値の一部分を復号する段階をさらに有し、前記直接値の前記一部分は複数の丸めモードのうちの一つに対応する符号codeを含む、請求項10記載の機械可読媒体。請求項13第一の単一命令複数データSIMDオペランドの少なくとも一つの要素を丸める第一の命令を、前記第一の命令によって規定される、複数のモードのうちの一つのモードに従って実行する実行論理を有する、プロセッサ。請求項14前記第一の命令および前記第一の命令に関連付けられた直接データ要素を受領し、前記直接データ要素のオーバーライド指標に基づいて、デフォルト丸めモードがオーバーライドされるべきかどうかを判定するコントローラをさらに有する、請求項13記載のプロセッサ。請求項15前記実行論理が、前記デフォルト丸めモードがオーバーライドされるべきである場合、前記直接データ要素の丸めモードに従って前記少なくとも一つの要素を丸める、請求項14記載のプロセッサ。請求項16前記第一の命令は、前記実行論理のデフォルト丸めモード以外の丸めモードを示すオーバーライド指標と、前記複数のモードのうちの前記モードを示すモードフィールドとを含む、請求項13記載のプロセッサ。請求項17前記複数のモードのうちの少なくとも一つのモードは前記実行論理の制御レジスタに記憶されているデフォルト丸めモードとは異なる、請求項13記載のプロセッサ。請求項18前記複数のモードのうちの前記少なくとも一つのモードに従っての前記第一の命令の実行の間、前記デフォルト丸めモードが前記制御レジスタ内に記憶されたままである、請求項17記載のプロセッサ。請求項19前記実行論理が前記少なくとも一つの要素を丸めて整数の値をもつ浮動小数点値にし、前記第一のSIMDオペランドは限られた精度の浮動小数点値を含む、請求項13記載のプロセッサ。請求項20前記実行論理が前記少なくとも一つの要素を丸めて整数値にし、前記第一のSIMDオペランドは浮動小数点値を含む、請求項13記載のプロセッサ。