專利名稱::響應(yīng)指令執(zhí)行舍入運算的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般涉及處理器對數(shù)據(jù)^/f亍的數(shù)學(xué)運算,特別是涉及舍入運算。技術(shù)背景處理器對數(shù)據(jù)^f亍各種各樣的數(shù)學(xué)運算。數(shù)據(jù)可能屬于不同的類型,包括例如具有不同內(nèi)擬fr度的整數(shù)值和浮點(FP)值。當(dāng)處理FP值時,在其它這樣的操作之中,數(shù)學(xué)運算、比如乘法或加法的結(jié)果有可能產(chǎn)生需要將其轉(zhuǎn)換為較^Til格式的結(jié)果。相應(yīng)地,可以執(zhí)行舍入運算以將該FP結(jié)絲行舍入。盡管這樣的舍入運算可以作為不同數(shù)學(xué)運算的一^分來執(zhí)行,但是在一些處理器體系結(jié)構(gòu)中,P艮制了或不能夠作為獨立運算對數(shù)悟元素扭軒舍入運算,或者無需多個復(fù)雜的步驟。例如,處理器可以配置為根據(jù)缺省舍入模式批阡FP值到整數(shù)值的舍入。然而,因為種種理由,可能需要根據(jù)不同的模式來將給定的源操作數(shù)進行舍入。為了完成這樣的運算,可能出現(xiàn)JM處理器的當(dāng)前配置狀態(tài)、加栽包括關(guān)于所要求的舍入模式的信息在內(nèi)的新的配置狀態(tài)、扭行舍入運算、以及'ltt原始處理器狀態(tài)等的復(fù)雜步驟。這些搮作可能是耗費時間的,提高了復(fù)雜性并J4毛費了過多的處理周期。另外,雖然隨著新的程序設(shè)計語言的M,所希望的是支持其它的舍入模式,但是,在處理器中所執(zhí)行的舍入運算通常仍然按照有^lt量的舍入模式、即已在電氣和電子工程師學(xué)會(正EE)標準7544985(1985年發(fā)表)中所闡述的舍入模式進行。根據(jù)本發(fā)明的第一方面,提供了一種方法,包括在處理器中接收舍入指令和立即值;確定所述立即值的舍入模式替換指示符是否是有效的;以及如果有效,則響應(yīng)所述舍入指令并且根據(jù)在所述立即值中規(guī)定的舍入模式,在所i^J:理器的浮點單元中對源才刻乍數(shù)才似亍舍入運算。根據(jù)本發(fā)明的第二方面,提供了一種裝置,包括控制器,接收舍入指#與所述舍入指令相關(guān)的立即數(shù)據(jù)元素,其中,所述控制器基于所述立即數(shù)據(jù)元素的替換指示符來確^A否替換缺省舍入模式;以及4似亍單元,耦合于所述控制器,響應(yīng)所述舍入指令來4^f于舍入運算,其中,如果替換所述缺省^^模式,則所述4似亍單^艮據(jù)所述立即數(shù)據(jù)元素的舍入模式來^^于所述舍入運算。根據(jù)本發(fā)明的第三方面,提供了一種系統(tǒng),包括^/f亍單元,如果替換指示符存在于控制字段中,則根據(jù)與舍入指令相關(guān)的控制字段中規(guī)定的舍入模式,對第一操作數(shù)才似亍舍入指令以獲#^入的結(jié)果;以及津^于所述^/f亍單元的動態(tài)隨沖;i4:^賭器(DRAM)。根據(jù)本發(fā)明的第四方面,提供了一種機器可讀介質(zhì),.在其上4#了指令,如果所述指令由機^f丸行,就^f吏機H^Af亍包括以下步驟的方法根據(jù)由所述指4^見定的模式來4似亍舍入運算;以及在第一存儲區(qū)中存儲所述舍入運算的結(jié)果。圖1是根據(jù)4發(fā)明的一個實施例的方法的流程圖。圖2是才財居本發(fā)明的一個實施例的處理器的一部分的框圖。圖3是根據(jù)本發(fā)明的一個實施例、結(jié)合指令使用的立即數(shù)據(jù)元素的框圖。圖5是才財居本發(fā)明的一個實施例的系統(tǒng)的框圖。M實施方式在不同的實施例中,在處理器中、例如在處理器的浮點單元(FPU)中可^^J指令集體系結(jié)構(gòu)(ISA)的多^^入指令絲歲i^y似亍舍入運算。除了在電氣和電子工程師學(xué)會(正EE)標準754-1985(1985年發(fā)表)(在it^正EE標準用于二元浮點運算或者正EE標準754)中闡明的^、入模式O卜,實施例可用于根據(jù)其它舍入模式來^U亍舍入運算。例如,如下所述,在有些實施例中,指令可提供對部分遠離零的以及遠離零的舍入運算的支持。此外,這些舍入運算可以和許多數(shù)據(jù)類型^^f錢。在有些實現(xiàn)中,舍入運算可以對單指令多數(shù)據(jù)(SDMD)數(shù)據(jù)類型^lf亍,以便可以對擴展的數(shù)據(jù)類型、比如封裝數(shù)據(jù)元素^f亍指令,其中將多種數(shù)據(jù)元素封彭'沐一的位置例如處理器的擴充寄存器中。為了提供靈活性并且提供有效的指令才似亍,實施例可提供基于ISA的指令,該指令可以對源^f乍數(shù)^U亍。這些基于ISA的指令可以,于才似亍到源#^數(shù)的最接近整數(shù)值的舍入的舍入運算的不同實現(xiàn)。這樣的源操作數(shù)可能已經(jīng)是有^#度格式(即,不是算^it算的結(jié)果,而是從寄存器/存儲器中讀出的數(shù)據(jù))。這樣的指令可用于不同的應(yīng)用,包括多i某體應(yīng)用、游戲應(yīng)用等等。此外,實施例可在基于編譯輕序的^^要素上來實現(xiàn)以實現(xiàn)舍入運算,這些舍入運算適用于不同的程序設(shè)計語言。注意,在不同的實施例中,舍入指令可采用浮點數(shù)作為源操作數(shù),將其舍入到最接近的整數(shù)值,并且將結(jié)果也作為具有整數(shù)值的浮點值進行##。在不同的實施例中,至少部分根據(jù)與該指令""^接4U'j的信息、例如與該指4^"^接4t^的立即數(shù)據(jù),可處理對該執(zhí)行的控制。在不同的實現(xiàn)中,這樣的立即數(shù)據(jù)可替換(override)由處理器當(dāng)前所4M的缺省舍入模式。在這樣的替換情況中,該立即數(shù)悟可進一步提供對該舍入模式的控制。此外,該立即數(shù)據(jù)可為精度異常(即精度抑制)的替換作準備。如此可將立即數(shù)據(jù)用于提供特定舍入運算的非粘性控制,如此該運算可在最少周期中#似亍。這也許如此,如同當(dāng)與指令結(jié)合接收的立即數(shù)據(jù)包括舍入控制信息的時候,可能不需要更新出現(xiàn)于配置寄存器中的這種信息,其中配置寄存器比如為擴^L控制和狀態(tài)寄存器(CSR),例如存在于依據(jù)Intel⑧體系結(jié)構(gòu)(例如,IA-32體系結(jié)構(gòu))的處理器中的多媒^^廣展CSR(MXCSR)。然而,需要理解的是,可在不同的處理器類型中使用這些實施例,并*發(fā)明的范圍不是限于這個方面。JM參照圖1,所示的是根據(jù)本發(fā)明的一個實施例的方法的流程圖。如圖1所示,方法100首先接收在處理器之中的舍入指令以;^目關(guān)的立即數(shù)據(jù)(步驟110)。例如,在許多實現(xiàn)中,可在處理器中接收用戶級指令、例如,ISA的指令。除指令^卜,同時也可提供立即數(shù)據(jù)。如下面要進一步進4刊苗述,這種立即數(shù)據(jù)可包括多個字段以控制運算的各個方面。仍參照圖1,控制從步驟110轉(zhuǎn)到判斷步驟115。在判斷步驟115,可確定該立即數(shù)據(jù)是否替換配置寄存器的舍入模式。亦即,立即l封居的字賴:可能包括替換指示符,它指出是否替換缺省舍入模式。在不同的實施例中,這種缺省舍入模式可存在于配置寄存器、比如CSR、例如,MXCSR的字段中,^^發(fā)明的范圍不限于這個方面。如果該立即數(shù)椐包^^換指示符,則控制轉(zhuǎn)到步驟120。在步驟120,可將由指令識別的源梯作旨》)MM列如處理器的浮點單元(FPU)。此外,可將該源搮作數(shù)與信息j分派以控制舍入運算的舍入模式??蓮牧⒓磾?shù)據(jù)獲得控制信息,即,如同在立即數(shù)據(jù)的舍入狀態(tài)字段中所規(guī)定的。如同將要在下面進一步描述的,在有些實現(xiàn)中,控制單元、比如處理器的控制選擇單元可接收指令以及立即數(shù)據(jù),并且將立即數(shù)據(jù)琳碼以確^:否替換缺省舍入模式,以及如果是這樣的話,則獲得該立即數(shù)悟中規(guī)定的舍入模式。仍參照圖l,如^^判斷步驟115確定立即數(shù)據(jù)不包;^^換指示符,則控制轉(zhuǎn)移到步驟125。在步驟125,可分派源梯作M于在FPU進行執(zhí)行。此外,可在例如配置寄存器中規(guī)定的缺省舍入模式的勤出上l^亍舍入運算。無i^口何,控制者P^從兩個步驟120和125傳遞到步驟130,在那里可^f亍舍入運算。該舍入運##照舍入模式刪除了該輸入(即源操作數(shù))的分數(shù)精度。在不同的實施例中,可實規(guī)i^f亍舍入運算的不同方式。例如,在許多實現(xiàn)中,F(xiàn)PU可包括加法器和舍入單元用以^vf亍舍入運算。為了根據(jù)正EE標準754扭行舍入模式,加法器可擁有源搮作數(shù)作為第一才刺乍數(shù)以及常量值、例如零用作第二操作數(shù)。然后可將加法器的輸出饋送到舍入單元,該舍入單^艮據(jù)所選擇的操作模式將結(jié)果進行舍入。因此,舍入單元可將它的輸入值舍A^為整數(shù)值化的浮點結(jié)果。在其它的實施例中,除正EE標準754舍入模式^f還可^/f亍其它舍入模式。在這類實現(xiàn)中,可向FPU加法H^赍送源IM卡數(shù)以及以源:I刺乍數(shù)的值和該舍入模式為&出的特定數(shù)據(jù)值作為第^*作數(shù),將要在下面進行進一步描述。然后可對該結(jié)果^/f亍舍入運算,其中,該舍入運算可為正EE標準754運算。在其它擴展的舍入模式的實現(xiàn)中,可將源IM乍數(shù)和零值提供給FPU加法器的輸入,并且然后可將所^f直根據(jù)^J!J舍入單元的控制信息進行舍入。在扭行之后,可#^入運算的結(jié)果剤諸在目的搮作數(shù)中(步驟140)。在不同的實施例中,目的揚作數(shù)可以是處理器的擴展務(wù)賭寄存器,但是本發(fā)明的范圍不限于此。此外,可確定在舍入運算期間是否發(fā)生了精度異常(判斷步驟145)。亦即,可以確定該舍入運算是否形成了能夠引發(fā)異常的不精確的結(jié)果。如若不是,方法100可以結(jié)束。如果產(chǎn)生了精度異常,則控制可轉(zhuǎn)到判斷步驟150。在判斷步驟150,可確定立即數(shù)據(jù)是否包括了用于抑制精度異常的字段。亦即,在有些實現(xiàn)中,立即數(shù)據(jù)可包括抑制字段。這個字段的值可指示出,如果產(chǎn)生精度異常的話,相關(guān)的舍入指令是否應(yīng)該抑制精度異常。如果精度抑制指示符存在,則即使精度異常發(fā)生,也不會a更進一步地動作,并且方法100可以結(jié)束。如果立即數(shù)據(jù)不包括用于抑制精度異常的指示符,則控制可以轉(zhuǎn)到步驟160。在步驟160,可在狀態(tài)寄存器中設(shè)置精度異常的標宅、。例如,在有些實現(xiàn)中,狀態(tài)寄存器可對應(yīng)于MXCSR,^f旦是本發(fā)明的范圍不限于這個方面。以在狀態(tài)寄存器中的這個標志的狀態(tài)為&出,可能發(fā)生精度異常(例如,如果該標志A/u屏蔽的)。如果是這樣的話,則可例如經(jīng)由軟件處理器來才A/f于適當(dāng)?shù)奶幚硪蕴幚碓摦惓?。如果標志是被屏蔽的,即使精度異常發(fā)生了并且在狀態(tài)寄存器進行了標記,則相對于設(shè)置的標志不會采取^f可動作。盡管在圖1的實施例中對于這個M實現(xiàn)進行了描述,但是可以理解的是,本^發(fā)明的范圍不限于it個方面。王脈參照圖2,所示的是根據(jù)本發(fā)明的一個實施例的處理器一部分的框圖。如圖2所示,處理器200可包括控制選擇單元210,經(jīng)過并給用以從寄存器205(它可^1通用處理器寄存器)接收例如由微操作(pp)產(chǎn)生的輸入的指令信息以及與j):bN)關(guān)的立即數(shù)據(jù)。p0p可響應(yīng)用于扭行給定舍入運算的單一ISA的指令而產(chǎn)生。在不同的實施例中,控制選擇單元210可以對立即數(shù)據(jù)解碼,其中該控制選擇單元210可由硬件、軟件、固件或它們的組合來實現(xiàn)。在立即數(shù)據(jù)的勤出上,可以確^A否替換例如在務(wù)賭了當(dāng)前舍入控制狀態(tài)220的控制或者配置寄存器中所表示的處理器的當(dāng)前舍入模式。如果是這樣的話,控制選^^單元210可以解碼立即數(shù)據(jù)的模式字段,即舍入模式字段,來確定恰當(dāng)?shù)纳崛肽J健?刂七x擇單元210可井給于浮點單元(FPU)240以在輸入信息的勤出上向^W是供控制指令。如圖2中進一步所示,擴展寄存器文件、比如所謂的擴展(XMM)寄存器230可出J脈處理器200之內(nèi),其中該處理器200可包括在作為用于舍入運算的源和目的操作數(shù)的指令中所確定的寄存器。因此,XMM寄存器230可井給于FPU240以對^l是供源梯作數(shù)并從其中接收目的*#數(shù)。在不同的實施例中,F(xiàn)PUMO可包括^t電路以對數(shù)據(jù)l^亍^f乍。在圖2的實施例中,F(xiàn)PU240包括FPU加法器242。JM^地,如圖2所示,F(xiàn)PU加法器242可被耦合以接收輸入操怍數(shù),例如第一源^1乍數(shù)和第二源^f乍數(shù)(即,操作數(shù)Sl和S2)。FPU240也可包括FPU舍入器244,它井給于FPU加法器242的輸出。在不同的實施例中,F(xiàn)PU加法器242可產(chǎn)生運算的無PM奇確結(jié)果。然而,給定了^H諸器及其它約束,可能會將結(jié)果進行舍入來以所希望的格式例如單精度或者雙精度浮點元素提供最終結(jié)果。相應(yīng)地,F(xiàn)PU舍入器244可從FPU加法器242接f]t^l^lt確的結(jié)果并JIi^亍舍入運算,例如由處理器200的當(dāng)前舍入模式所指示的,或者以來自立即數(shù)據(jù)的控制為勤出,其中該立即數(shù)據(jù)與指令1獲得,即經(jīng)由控制選擇單元210。注意,盡管FPU舍入器244通常可接jJ^FPU加法器242中作為數(shù)學(xué)運算結(jié)果出現(xiàn)的無PM奇確的結(jié)果,但是在不同的實現(xiàn)中,擁有舍入指令的源*^乍數(shù)可能已經(jīng)是有卩財奮度格式。在這些情況下,F(xiàn)PU舍入器244可接收其輸入4直(例如對應(yīng)于給定舍入指令的源操作數(shù))并且產(chǎn)生例如對應(yīng)于最接近的整數(shù)值的舍入結(jié)果。因此,以給定的舍入指令為基礎(chǔ),F(xiàn)PU!240可以對例如來自XMM寄存器230之一、由來自控制選擇單元210的信息所控制的給定源才剩乍數(shù)執(zhí)行舍入運算。j)^卜,在舍入運算完成的時候,可將結(jié)^fi者到例如在xmm寄存器230之中不同的寄存器上。如斜奇度異常^^算期間發(fā)生,通常可在FP狀態(tài)寄存器225詔J標志^^明。然而,在不同的實施例中,如果與舍入指令有關(guān)的立即數(shù)據(jù)指示了精度抑制,則不設(shè)置這樣的標志。盡管在圖2的實施例中對于這個M實現(xiàn)進行了描述,但是可以理解的是,本發(fā)明的范圍不限于這個方面。例如,在有些實施例中,例如由舍入控制狀態(tài)220和FP狀態(tài)寄存器225所表示的控制和情況狀態(tài)可被^i者在單一CSR例如MXCSR中。注意,可通過不同的形式向控制選擇單元210提供立即數(shù)據(jù)。例如,在有些實現(xiàn)中,立即數(shù)據(jù)可以是單字節(jié)數(shù)據(jù)元素的形式,但是本發(fā)明的范圍不限于此。jtb^卜,在立即數(shù)據(jù)元素之內(nèi)可實現(xiàn)不同方式的編碼控制信息。王1^參照圖3,所示的是根據(jù)本發(fā)明的一個實施例的立即數(shù)據(jù)元素的框圖。如圖3所示,立即數(shù)據(jù)元素300可為包4^^換指示符310、模iU空制字段320、精度替換指示符330和保留字段340的8比特字。盡管在圖3的實施例顯示了這個脅實現(xiàn),但是本發(fā)明的范圍不限于這種方式。在圖3的實施例中,替換指示符310可用來確定與立即數(shù)據(jù)元素300有關(guān)的舍入指令的替換狀態(tài)。如下面表1所示,替換指示符310可設(shè)置為邏壽制氐電平來指i缺省舍入模式(例如由配置寄存器如MXCSR所表示)的替換邏輯高電平值指示缺省模式的^f狄。表l<table>tableseeoriginaldocumentpage13</column></row><table>如果替換指示符310指示將要替換缺省舍入模式,那么可對舍入模式字段320進^^碼以確定與舍入指今相關(guān)的舍入模式。如下面表2所示,在有些實現(xiàn)中,可支持:Mt舍入模式,包括由正EE標準754規(guī)定的四種舍入模式,以及兩種擴展的舍入模式,將在下面對其更進一步地進^i寸論。表2<table>tableseeoriginaldocumentpage13</column></row><table>立即凄史據(jù)元素300還包括精度抑制指示符330,可對其進4ti殳置來指示不精確結(jié)果的容差,使##度異常即使在相關(guān)指令的運算期間發(fā)生時也不會導(dǎo)致在狀態(tài)寄存器中的異常標志的設(shè)置。具體地,如下面表3所示,精度抑制指示符330可以采用以下形式表3__<table>tableseeoriginaldocumentpage13</column></row><table>注意,精度抑制指示符330可與不同語言、例如C99、Fortran和Java的用戶級指令結(jié)合使用。最后,在一些實施例中,可以為額外的信息保留保留字段340。還要注意,絲1-3中M^的^^值、以及指示符和字段的M位置和大小不受限制,并且^^種改變、.修改和擴展都在本發(fā)明的范圍之內(nèi)。如同上面描述的,在許多實現(xiàn)中,舍入運算可響應(yīng)ISA的軒旨令來執(zhí)行。以這種方法,提供了用戶級的支持,并且可以有效地^/f亍舍入運算。在給定的ISA中,可出現(xiàn)^H錢若干這類舍入指令來處理蔣的舍Ail算,例如雙精度和單精度浮點值以及封裝和標量值的舍入。這些舍入指令也可用于將浮點數(shù)據(jù)元素的分數(shù)部^^去。除ISA級指令的存在^卜,立即數(shù)據(jù)或者其它的控制字段信息可以允"^^入模式(連同其它屬性一道)的有效局部控制,而不必flf文處理器的當(dāng)前缺省狀態(tài)。如下面表4所示,在ISA之中可以出現(xiàn)不同的舍入指令以對不同類型的數(shù)據(jù)元素實現(xiàn)有效的舍入運算。表4指令描述ROUNDPDxmml,xmm2/ml28,imm8將在xmm2/ml28中封裝的^Mt度浮點值進行舍入并且將結(jié)果放入xmml。由imm8確定^^入的才莫式。ROUNDPSxmml,xmm2/ml28,imm8將在xmm2/ml28中封裝的單精度浮點值進行舍入并且將結(jié)果放入xmml.。由imm8確定^W的才莫式。ROUNDSDxmml,xmm2/m64,imm8將在xmm2/m64中低封裝的^OT青度浮點值進行舍入并且將結(jié)果放入xmml。由imm8確定^^入的才莫式。ROUNDSSxmml,xmm2/m32,imm8將在xmm2/m32中低封裝的單精度浮點值進行舍入并且將結(jié)果放入xmml。由imm8確定^^入的;f莫式。作為這些ISA指44口何操作的例子,可^fMR0UNDPD指令,通過在直接元素(即MM8)中M^的舍入模式來將在源才刺乍數(shù)(即可從XMM寄存器或者存儲器得到的第二操作數(shù))中的兩個雙精度浮點值進行舍入,并且將結(jié)f^文到目的#1乍數(shù)(即可以是XMM寄存器的第一l剁乍數(shù))中。直接元素可以指^]于舍入運算的控制字段。再參考表1-3,立即數(shù)據(jù)的比特4(即圖3的指示符330)可以控制精度異常的處理器的行為,而比特0(即圖3的指示符310)可以選擇舍入模iU空制的源。最后,比特3:1(即圖3的字段320)可以指定非粘性舍入模式值。注意,在有些實施例中,如果4務(wù)阿源^^乍li^信令而不^Jt字(SNaN),那么它將^^封奐為^^止的NaN(QNaN)。如果將配置寄存器對于非正常設(shè)置為零(DAZ),那么非正??稍谏崛胫稗D(zhuǎn)換為零。如果將配置寄存器對于非正常刷新(flushdenormal)設(shè)置為零(FTZ),那么非正常可在舍入^轉(zhuǎn)換為零。作為這些ISA指44n何操怍的另一個例子,ROUNDPS指今^f用^源操作數(shù)中將四個封裝的單精度浮點值進行舍入并且將結(jié)果放到目的操作數(shù)中。為了說明的目的,M的舍入指令可以采用以下形式ROUNDPSxmmO,xmml,imm8(舍WJ最接近的整數(shù))。這個指令可取第一寄存器即xmml中的封裝單精度值,如同由立即數(shù)據(jù)(即imm8)的舍入模式所規(guī)定的#^個值舍入到最接近的整數(shù)值,并且將結(jié)^i^諸到第二寄存器、即xmmO中。下面的表5顯示了存在于源辨數(shù)(即xmml)中、各對應(yīng)于有P財奇度浮點值的典型值以及^f諸在目的梯作數(shù)(即xmmO)中、對應(yīng)于整數(shù)值化的浮點數(shù)、即與初始源值最接近的整數(shù)值的所齢入值。表5<table>tableseeoriginaldocumentpage15</column></row><table>注意,在另外的實現(xiàn)中,舍入運算可響應(yīng)從源FP值生成的整數(shù)值(即,與整數(shù)值化FP值相反)的指令。其它的實施例可以實ifU'J較^^度浮點表示法的舍入。這樣的實施例可根椐標準舍入模式或者特殊的舍入模式來提^^入源值的有效部件,其中特殊的舍入模式由配置寄存器中缺省舍入模式或者在與該指令有關(guān)的立即數(shù)據(jù)中規(guī)定的局省l^入模式iMi行控制。在不同的實施例中,立即數(shù)據(jù)可提供控制信息以^/f亍不同于IEEE標準754舍入運算的舍入模式。這些舍入模式可以包^^分向遠離零的方向舍入以及向遠離零的方向舍入模式。J脈參照圖4,所示的是4財居本發(fā)明的一個實施例^/f亍舍入運算的方法的流程圖。如圖4所示,方法400可用來才W亍這些擴展的舍入模式。方法400可通過確定源梯作^A否大于或等于零(菱形步驟410)來開始。如果是這樣的話,控制可以轉(zhuǎn)到步驟420,在那里可從源4斜乍數(shù)減去預(yù)定的值(步驟420)。例如,F(xiàn)P加法器可以在所選捧的^^舍入模式的^5出上從源^f乍數(shù)減去給定的值。當(dāng)然,這個減法可通過與預(yù)定值的負^勤目加來^U亍。然后,可對FP加法的結(jié)果"^f亍所選定的舍入運算(步驟430)。在有些實現(xiàn)中,IEEE標準754舍入運算、例如截尾(為舍入到零)可對結(jié)果^f亍以獲得擴展的舍入模式結(jié)果。如果在菱形步驟410確定該源梯作數(shù)小于零,那么控制轉(zhuǎn)移到步驟440。在步驟440,可在FP加法器中將預(yù)定的值(它可能是與以上所贈目同的值)加到源梯作數(shù)上。然后,在步驟450,可對結(jié)果^f亍選定的舍入運算以獲得由此產(chǎn)生的舍入值。雖然本發(fā)明的范圍不限于這個方面,但是部分向遠離零的方向舍入運算可以使用0.5的值作為其預(yù)定的值,而向遠離零的方向舍入運算可以佳月1",它對應(yīng)于小于但不等于一的最接近的可表示的FP值。對于單精度和^#度FP值,0.5可分別對應(yīng)于0x3fD00000和0x3fe0000000000000。對于單精度和雙精度FP值,-0.5可分別對應(yīng)于0xbf000000和0xbfe000000000000。對于單精度和乂對青度FP值,l"可分別對應(yīng)于Ox3f7飾和0x3feffiHHHffif。對于單精度和一奮度FP值,-l"可以分別對應(yīng)于0xbf7腿和oxbfefflmnnnr。在下面表6中顯示的A^于^f亍這些操怍的源f^馬例子。ROL'NI)二〖lAi:O^Y一7-剛(A)麵^^^^^B^^^^^K^ffB讓圖醫(yī)謹鏞靄國l,議,l關(guān)畫,圖圍誦國A—HO咖一T魏娜—Z,(AOi》r"~~~ELSEIF(A")A(-ROUND—TOWARD—ZE船(A+0,5)2)RcmndAw炒FromZero(A>."Thj;resultshallbethevalue(jlose詿a^'CsmSJinmagnitudethantheinfinitelypreciseresult"IP(A"O)A—ROUNDJTOWARD—ZERO(A-1)ELSEIF(A>0)A—ROUND—TOWARD—ZBRO(A+〗)在這些例子中,運算ROUND—TOWARD—ZERO是正EE標準754的截^i喿作,它對加法/減法運算的結(jié)果才似于。注意,在#^亍這些擴展舍入模式的運算中,可提供預(yù)定的值作為給FP加法器的第二源:^(乍數(shù)(例如,如同在圖2實施例中的S2)。另一方面,M些實施例中,如同其它的舍入運算一樣,第二源操作數(shù)可以為零,并且可將控制信號發(fā)送到舍入單元以實王腿定的擴展舍入模錄算。這樣,在不同的實施例中,可實現(xiàn)對于扭J亍^^入的增強。這些增強可以載^^亍樹#^乍的需要,例如^^諸控制寄存器的狀態(tài)、^Vf亍空FP運算以及重新設(shè)置狀態(tài),或者甚至是轉(zhuǎn)換數(shù)字到整數(shù)以及回到浮點的近似簡化。通過抑制不精確的精度異常,用于舍入的相符不同語言的支持可簡#^匕,而實現(xiàn)也可以遵守某些舍入功能的標準舍入模式,例如在C99語言中。實施例可以在許多不同的系統(tǒng)類型中實現(xiàn)?,F(xiàn)在參照圖5,所示的是根據(jù)本發(fā)明的一個實施例的系統(tǒng)的框圖。如圖5所示,多處理器系統(tǒng)500是點對點互連系統(tǒng),并且包括經(jīng)由點對點互連550津給的第一處理器570和第二處理器580。如圖5所示,處理器570和580中^~個都可以是多核處理器,包括第一和第二處理器核(即,處理器核574a和574b以及處理器核584a和584b)。注意,^"個核都可響應(yīng)根據(jù)本發(fā)明的一個實施例的ISA級指令來船舍入運算。第一處理器570此外還包括點對點(P-P)接口576和578。類似地,第二處理器580包括P-P接口586和588。如圖5所示,^^潮空制器集線器(MCH)572和582將處理器l給到各自的賴器上,即^^諸器532和存儲器534,它們可能是;^k^接到各自處理器的主存賭器的部分。第一處理器570和第二處理器580可分別經(jīng)由P-P互連552和554耦合到芯片組590上。如圖5所示,芯片組590包括P-P接口594和598。此外,芯片組590包括接口592以將芯片組590與高性能圖形引擎538相耦合。在一個實施例中,高級圖形接口(AGP)總線539可用來將圖形引擎538井^^到芯片組590。AGP總線539可符合加速圖形端口接口M^f^i丁片脈2.0,它于1998年5月4日由加利福尼亞SantaClara的英特爾公司發(fā)表。另一方面,點對點互連539可以l^^這些元件。船,芯片組590可經(jīng)由接口5961^^到第一總線516。在一個實施例中,第一總線516可以是外圍元件互連(PCI)總線,如由pa局部總線規(guī)范,生產(chǎn)片脈,十fi丁版2.1,日期是1995年6月所定義的,或者例如PCIExpress總線或者其它第三^^TA/輸出(I/O)中間聯(lián)接總線的總線,<沐發(fā)明的范圍不限于此。如圖5所示,MIZO設(shè)備514可津^^到第一總線516,以及g線橋518,其中該總癥緣518將第一總線5161^^到第二總線520。在一個實施例中,第二總線520可以是少引線數(shù)(LPC)總線。在一個實施例中,M設(shè)備可以^^到第二總線520,其中包括例如4紐/鼠標522、通i錄置526以及諸如可包括代碼530的磁盤驅(qū)動器或者其它大容量,裝置之類的數(shù)據(jù)存儲單元528。jH^卜,音頻I/o524可^^到第二總線520。注意,其它的體系結(jié)構(gòu)也是可能的。例如,代替圖5的點對點體系結(jié)構(gòu),系統(tǒng)可以實現(xiàn)多點總線或者其它這樣的體系結(jié)構(gòu)。實施例可通過編碼來實現(xiàn),并且可^ft在^f諸介質(zhì)上,其中已經(jīng)在該^f諸介質(zhì)上^f諸了用于為系統(tǒng)編制考踏使其^/f亍指令的指令。該^f諸介質(zhì)可包括但是不局限于任何類型的盤,包括軟盤、光盤、光盤只讀存儲器(CD-ROM)、可重寫光盤(CD-RW)、以及磁光盤、半導(dǎo)體裝置例如只讀存儲器(ROM)、隨f踏取存儲器(RAM)例如動態(tài)隨才;u4:^儲器(DRAM)、靜態(tài)隨才踏旨賭器(SRAM)、可擦除可編程只讀存儲器(EPROM)、閃速^f諸器、電可4察除可編程只讀^f諸器(EEPROM)、磁或光卡、或者4封可其它類型的適于^^者電子指令的介質(zhì)。盡管已經(jīng)針對有限數(shù)量的實施例描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員能夠從其中知道多種修改和變化。所附的權(quán)利要求覆蓋了落入本發(fā)明的真正的^#和范圍之內(nèi)的所有這樣的修改和變化。權(quán)利要求1.一種方法,包括在處理器中接收舍入指令和立即值;確定所述立即值的舍入模式替換指示符是否是有效的;以及如果有效,則響應(yīng)所述舍入指令并且根據(jù)在所述立即值中規(guī)定的舍入模式,在所述處理器的浮點單元中對源操作數(shù)執(zhí)行舍入運算。2.如權(quán)利要求1所述的方法,^4爭tt于,還包括如果所n即值的舍入模式替換指示符是無效的,則響應(yīng)所述舍入指令并且根據(jù)在所述處理器的控制寄存器中規(guī)定的舍入模式來4似亍所述舍入運算。3.如權(quán)利要求1所述的方法,其特征在于,還包括在所述舍入運算的才W亍期間^4控制寄存器的值,其中所述控制寄存器包括缺省舍入模式。4.如權(quán)利要求1所述的方法,^HN雄于,還包括才艮據(jù)在所ii^即值中規(guī)定的部分向遠離零的方向的舍入模式來^lf亍所述舍入運算。5.如權(quán)利要求l所述的方法,其特征在于,還包括在目標^f諸區(qū)存儲所述舍入運算的結(jié)果作為整數(shù)值化的浮點值,其中,所述源操作數(shù)包含有,度浮點值。6.如權(quán)利要求1所述的方法,^4村雄于,還包括如^^斤iii即值的精度抑制指示符是有效的,則抑制由所述會入運算產(chǎn)生的精度異常。7.如權(quán)利要求1所述的方法,其特征在于,所述舍入指令包括指令集體系結(jié)構(gòu)的指令,用于對所述源才斜乍數(shù)的多個單指令多數(shù)據(jù)(SIMD)元素擬亍所述舍入運算。8.—種裝置包括控制器,接收舍入指4^與所述舍入指令相關(guān)的立即數(shù)據(jù)元素,其中,所述控制器基于所述立即數(shù)據(jù)元素的替換指示符來確;tA否替換缺省舍入模式;以及^f亍單元,^^于所述控制器,響應(yīng)所述舍入指令來^^于舍入運算,其中,如果替換所述缺省舍入模式,則所述^/f亍單^艮據(jù)所述立即數(shù)據(jù)元素的舍入模式來^^于所述舍入運算。9,如權(quán)利要求8所述的裝置,其特征在于,所述控制器A^給于所述控制器的通用寄存點妄4燈斤述立即數(shù)據(jù)元素。10.如權(quán)利要求8所述的裝置,其特;f正在于,還包括l給于所述執(zhí)行單元以存儲所述缺省舍入模式的控制寄存器,并且如果^"替換所述缺省舍入模式,則所述控制寄存器的值將被^4。11.如權(quán)利要求10所述的裝置,其特4iE^于,所述舍入運期奪源^f卡數(shù)中的多個封裝的浮點值的每一個舍入成整數(shù)值化的浮點值,并且在目的##數(shù)中^[諸多個整數(shù)值化的浮點值的^-"個。12.如權(quán)利要求8所述的裝置,其特44于,所述控制器基于所iiA即數(shù)據(jù)元素的抑制指示符來確U否對精度異常進行抑制。13.如權(quán)利要求8所述的裝置,其特4^于,如^H"所述缺省^A才莫式進^#換,則所述控制器對所述直"IM封居元素的舍入模式字段進^^碼。14.如權(quán)利要求8所述的裝置,^4衫i^于,所述^^亍單元包括接收第一#^乍數(shù)和第^#1乍數(shù)的浮點加法器;以及專給到所絲點加法器的輸出以^M亍所述舍入運算的舍入器。15.如權(quán)利要求14所述的裝置,其特4碌于,所述控制器向所述^^入器提供控制信號以扭軒所述舍入運算,其中,所述舍入運算包含向遠離零的方向^^入。16.如權(quán)利要求14所述的裝置,^#4碌于,如果所述源才剁乍凄a少等于某個閾值,則所述浮點加法器將第一值與源梯作數(shù)相加,否則所述浮點加法器>^斤述源#^乍數(shù)中減去所述第一值。17.如權(quán)利要求8所述的裝置,其特^M于,所述舍入指令包括指令集體系結(jié)構(gòu)的指令。18.—種系統(tǒng),包括^Vf亍單元,如果替換指示符存在于控制字段中,貝W艮據(jù)與舍入指令相關(guān)的控制字段中規(guī)定的舍入模式,對第一操作數(shù)^f亍舍入指令以獲^^入的結(jié)果;以及津給于所述#^亍單元的動態(tài)隨沖踏*賭器(DRAM)。19.如權(quán)利要求18所述的系統(tǒng),其特44于,還包括選擇單元,接收所述舍入指令以;5J斤述控制字段,其中,如果替換指示符存在,則所述選擇單元將所述控制字段的舍入模式部分進行解碼并M其中產(chǎn)生控制信20.如權(quán)利要求19所述的系統(tǒng),其特4碌于,所述4;W亍單元包括浮點單元,響應(yīng)來自所i^擇單元的控制信號,對所述第一^f乍數(shù)4Mf舍入運算,其中,所述第一纟辨數(shù)包括有胸t度值。21.如權(quán)利要求18所述的系統(tǒng),其特4i^于,還包拾控制寄存器,為所述^^亍單賄儲缺省舍入模式,其中,如果所述替換指示符存在于所述控制字段中,則所述#^亍單^#4居不同于所述缺省舍入模式的舍入模式來擬亍舍入指令。22.如權(quán)利要求21所述的系統(tǒng),其特棘于,雖然所述缺省舍入模式^j諸在所述控制寄存器中,但是所述^/f亍單^艮據(jù)所述不同的舍入模式來術(shù)舍入指令。23.如權(quán)利要求18所述的系統(tǒng),其特4確于,如果抑制指示符存在于所述控制字段中,則所述^y亍單元將不更新表示由所述舍入指令的i^亍所引起的精度異常的狀態(tài)寄存器。24.如權(quán)利要求21所述的系統(tǒng),其特4確于,如果所述第一才剁乍數(shù)小于或等于某個閾A,則所述^l/f于單元通過第一值和所述第一操作數(shù)的相加來^U亍所述不同的舍入模式,否則通過第二值和所述第一操怍數(shù)的相加,其中,所述第"H直包括所述第二值的負數(shù)浮點形式。25.—種機器可讀介質(zhì),在其上存儲了指令,如果所述指令由機器執(zhí)行,就"^吏機H^/f亍包括以下步驟的方法根據(jù)由所述指^H紋的模式來^f亍舍入運算;以及在第一務(wù)賭區(qū)中,所述舍入運算的結(jié)果。26.如權(quán)利要求25所述的機器可讀介質(zhì),其特M于,所述模W艮據(jù)與^孩在控制寄存器中的缺省舍7^模式不同的舍入模式來?I起所述舍入運算的^/f亍。27.如權(quán)利要求25所述的機器可讀介質(zhì),其特;f雄于,所述方法還包拾對與所述指令相關(guān)的立即值的一卩^i^ff^碼以確定所述模式,其中,所i^即值的部分包括對應(yīng)于多個^Vv才莫式之一的^/馬。28.如權(quán)利要求27所述的機器可讀介質(zhì),其特征在于,所述多個舍入模式包^^分向遠離零的方向舍入模式以及向遠離零的方向舍入模式。29.如權(quán)利要求25所述的機器可讀介質(zhì),其特;(碌于,所述指令包括指令集體系結(jié)構(gòu)的指令以將源梯作數(shù)的至少一個雙精度浮點值舍入到整數(shù)值化的結(jié)果,并且將所述整數(shù)值化的結(jié)^f諸到第一^f渚區(qū)中。30.如權(quán)利要求25所述的機器可讀介質(zhì),其特征在于,所述指令包括指令集體系結(jié)構(gòu)的指令以將源操作數(shù)的至少一個單精度浮點值舍入到整數(shù)數(shù)據(jù)類型,并且將所i^吉^f諸到第一務(wù)賭區(qū)中。全文摘要在一個實施例中,本發(fā)明包括一種方法,用于在處理器中接收舍入指令和立即值,確定立即值的舍入模式替換指示符是否有效,并且如果是這樣的話,則在處理器的浮點單元中,響應(yīng)該舍入指令并且根據(jù)在立即操作數(shù)中規(guī)定的舍入模式,以源操作數(shù)執(zhí)行舍入運算。對其它的實施例進行了描述并要求其權(quán)益。文檔編號G06F7/499GK101149674SQ20071017015公開日2008年3月26日申請日期2007年9月21日優(yōu)先權(quán)日2006年9月22日發(fā)明者R·??怂鞴?S·斯托里申請人:英特爾公司