專利名稱:響應(yīng)指令執(zhí)行舍入運(yùn)算的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及處理器對(duì)數(shù)據(jù)執(zhí)行的數(shù)學(xué)運(yùn)算,特別是涉及舍入運(yùn)算。
背景技術(shù):
處理器對(duì)數(shù)據(jù)執(zhí)行各種各樣的數(shù)學(xué)運(yùn)算。數(shù)據(jù)可能屬于不同的類型,包括例如具 有不同內(nèi)在精度的整數(shù)值和浮點(diǎn)(FP)值。當(dāng)處理FP值時(shí),在其它這樣的操作之中,數(shù)學(xué)運(yùn) 算、比如乘法或加法的結(jié)果有可能產(chǎn)生需要將其轉(zhuǎn)換為較低精度格式的結(jié)果。相應(yīng)地,可以 執(zhí)行舍入運(yùn)算以將該FP結(jié)果進(jìn)行舍入。盡管這樣的舍入運(yùn)算可以作為不同數(shù)學(xué)運(yùn)算的一部分來(lái)執(zhí)行,但是在一些處理器 體系結(jié)構(gòu)中,限制了或不能夠作為獨(dú)立運(yùn)算對(duì)數(shù)據(jù)元素執(zhí)行舍入運(yùn)算,或者無(wú)需多個(gè)復(fù)雜 的步驟。例如,處理器可以配置為根據(jù)缺省舍入模式執(zhí)行FP值到整數(shù)值的舍入。然而,因?yàn)?種種理由,可能需要根據(jù)不同的模式來(lái)將給定的源操作數(shù)進(jìn)行舍入。為了完成這樣的運(yùn)算, 可能出現(xiàn)保存處理器的當(dāng)前配置狀態(tài)、加載包括關(guān)于所要求的舍入模式的信息在內(nèi)的新的 配置狀態(tài)、執(zhí)行舍入運(yùn)算以及恢復(fù)原始處理器狀態(tài)等的復(fù)雜步驟。這些操作可能是耗費(fèi)時(shí) 間的,提高了復(fù)雜性并且耗費(fèi)了過(guò)多的處理器周期。另外,雖然隨著新的程序設(shè)計(jì)語(yǔ)言的發(fā) 展,所希望的是支持其它的舍入模式,但是,在處理器中所執(zhí)行的舍入運(yùn)算通常仍然按照有 限數(shù)量的舍入模式、即已在電氣和電子工程師學(xué)會(huì)(IEEE)標(biāo)準(zhǔn)754-1985 (1985年發(fā)表)中 所闡述的舍入模式進(jìn)行。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了一種方法,包括以下步驟接收包括指示舍入模式的舍入信息的指令集體系結(jié)構(gòu)(ISA)的舍入指令;根據(jù)所述舍入信息來(lái)確定所述舍入模式;以及根據(jù)舍入模式來(lái)對(duì)操作數(shù)執(zhí)行舍入運(yùn)算。根據(jù)本發(fā)明的第二方面,提供了一種裝置,包括控制器,接收包括具有指示舍入模式的模式字段和替換指示符的舍入信息的指令 集體系結(jié)構(gòu)(ISA)的舍入指令,所述控制器根據(jù)所述替換指示符來(lái)確定是否替換缺省舍入 模式,所述控制器根據(jù)所述舍入信息來(lái)確定所述舍入模式;以及執(zhí)行單元,根據(jù)所述舍入模式來(lái)對(duì)操作數(shù)執(zhí)行舍入運(yùn)算。根據(jù)本發(fā)明的第三方面,提供了一種系統(tǒng),包括處理器,根據(jù)舍入模式來(lái)對(duì)操作數(shù)執(zhí)行舍入運(yùn)算,所述舍入模式根據(jù)用戶級(jí)舍入 指令來(lái)確定,所述用戶級(jí)舍入指令包括指示舍入模式的舍入信息;耦合到所述處理器的存儲(chǔ)器。
根據(jù)本發(fā)明的第四方面,提供了一種方法,包括以下步驟接收包括舍入信息的用戶級(jí)舍入指令,所述舍入信息具有替換指示符和指示舍入 模式的模式字段;根據(jù)替換信息來(lái)確定是否替換缺省舍入模式;以及如果替換所述缺省舍入模式,則從所述模式字段獲得所述舍入模式;根據(jù)所述舍入模式和將被舍入的操作數(shù)來(lái)把預(yù)定值加到所述操作數(shù)上;以及根據(jù)所述舍入模式來(lái)對(duì)加法結(jié)果執(zhí)行舍入運(yùn)算。根據(jù)本發(fā)明的第五方面,提供了一種裝置,包括控制器,接收包括指示舍入模式的舍入信息的舍入指令,以便根據(jù)所述舍入信息 來(lái)確定是否替換缺省舍入模式;以及如果替換所述缺省舍入模式,則從所述舍入信息獲得 所述舍入模式;以及執(zhí)行單元,根據(jù)所述舍入模式和將被舍入的操作數(shù)來(lái)把預(yù)定值加到所述操作數(shù) 上,并根據(jù)所述舍入模式來(lái)對(duì)加法結(jié)果執(zhí)行舍入運(yùn)算。
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法的流程圖。圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的處理器的一部分的框圖。圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例、結(jié)合指令使用的立即數(shù)據(jù)元素的框圖。圖4是根據(jù)本發(fā)明的一實(shí)施例用于執(zhí)行舍入運(yùn)算的方法的流程圖。圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)的框圖。
具體實(shí)施例方式在不同的實(shí)施例中,在處理器中、例如在處理器的浮點(diǎn)單元(FPU)中可使用指令 集體系結(jié)構(gòu)(ISA)的多個(gè)舍入指令來(lái)有效地執(zhí)行舍入運(yùn)算。除了在電氣和電子工程師學(xué)會(huì) (IEEE)標(biāo)準(zhǔn)754-1985 (1985年發(fā)表)(在這里IEEE標(biāo)準(zhǔn)用于二元浮點(diǎn)運(yùn)算或者IEEE標(biāo)準(zhǔn) 754)中闡明的舍入模式之外,實(shí)施例可用于根據(jù)其它舍入模式來(lái)執(zhí)行舍入運(yùn)算。例如,如下 所述,在有些實(shí)施例中,指令可提供對(duì)部分遠(yuǎn)離零的以及遠(yuǎn)離零的舍入運(yùn)算的支持。此外, 這些舍入運(yùn)算可以和許多數(shù)據(jù)類型一起使用。在有些實(shí)現(xiàn)中,舍入運(yùn)算可以對(duì)單指令多數(shù) 據(jù)(SIMD)數(shù)據(jù)類型執(zhí)行,以便可以對(duì)擴(kuò)展的數(shù)據(jù)類型、例如壓縮(packed)數(shù)據(jù)元素執(zhí)行指 令,其中將多個(gè)數(shù)據(jù)元素壓縮到單個(gè)位置例如處理器的擴(kuò)充寄存器中。為了提供靈活性并且提供有效的指令執(zhí)行,實(shí)施例可提供基于ISA的指令,該指 令可以對(duì)源操作數(shù)執(zhí)行。這些基于ISA的指令可以是用于執(zhí)行到源操作數(shù)的最接近整數(shù) 值的舍入的舍入運(yùn)算的不同實(shí)現(xiàn)。這樣的源操作數(shù)可能已經(jīng)是有限精度格式(即,不是算 術(shù)運(yùn)算的結(jié)果,而是從寄存器/存儲(chǔ)器中讀出的數(shù)據(jù))。這樣的指令可用于不同的應(yīng)用,包 括多媒體應(yīng)用、游戲應(yīng)用等等。此外,實(shí)施例可在基于編譯程序的原語(yǔ)中實(shí)現(xiàn)以實(shí)現(xiàn)舍入運(yùn) 算,這些舍入運(yùn)算適用于不同的程序設(shè)計(jì)語(yǔ)言。注意,在不同的實(shí)施例中,舍入指令可采用 浮點(diǎn)數(shù)作為源操作數(shù),將其舍入到最接近的整數(shù)值,并且將結(jié)果也作為具有整數(shù)值的浮點(diǎn) 值進(jìn)行存儲(chǔ)。在各種實(shí)施例中,至少部分根據(jù)與該指令一起接收到的信息、例如與該指令一起接收到的立即數(shù)據(jù),可處理對(duì)該執(zhí)行的控制。在不同的實(shí)現(xiàn)中,這樣的立即數(shù)據(jù)可替換 (override)由處理器當(dāng)前所使用的缺省舍入模式。在這樣的替換情況中,該立即數(shù)據(jù)可進(jìn) 一步提供對(duì)該舍入模式的控制。更進(jìn)一步講,該立即數(shù)據(jù)可為精度異常(即精度抑制)的 替換作準(zhǔn)備。這樣,可將立即數(shù)據(jù)用于提供特定舍入運(yùn)算的非粘性控制,如此該運(yùn)算可在最 少周期中執(zhí)行。這也許如同當(dāng)與指令結(jié)合接收的立即數(shù)據(jù)包括舍入控制信息的時(shí)候,可能 不需要更新出現(xiàn)于配置寄存器中的這種信息,其中配置寄存器例如為擴(kuò)展控制和狀態(tài)寄存 器(CSR),例如存在于依據(jù)Mel 體系結(jié)構(gòu)(例如,IA-32體系結(jié)構(gòu))的處理器中的多媒體 擴(kuò)展CSR(MXCSR)。然而,需要理解的是,可在不同的處理器類型中使用這些實(shí)施例,并且本 發(fā)明的范圍不是限于這個(gè)方面。現(xiàn)在參照?qǐng)D1,所示的是根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法的流程圖。如圖1所示, 方法100首先接收在處理器之中的舍入指令以及相關(guān)的立即數(shù)據(jù)(步驟110)。例如,在許 多實(shí)現(xiàn)中,可在處理器中接收用戶級(jí)指令、例如,ISA的指令。除指令之外,同時(shí)也可提供立 即數(shù)據(jù)。如下面要進(jìn)一步進(jìn)行描述,這種立即數(shù)據(jù)可包括多個(gè)字段以控制運(yùn)算的各個(gè)方面。仍參照?qǐng)D1,控制從步驟110轉(zhuǎn)到判斷步驟115。在判斷步驟115,可確定該立即 數(shù)據(jù)是否替換配置寄存器的舍入模式。亦即,立即數(shù)據(jù)的字段可能包括替換指示符,它指出 是否替換缺省舍入模式。在各種實(shí)施例中,這種缺省舍入模式可存在于配置寄存器、比如 CSR、例如,MXCSR的字段中,但本發(fā)明的范圍不限于這個(gè)方面。如果該立即數(shù)據(jù)包括替換指 示符,則控制轉(zhuǎn)到步驟120。在步驟120,可將由指令識(shí)別的源操作數(shù)分派給例如處理器的 浮點(diǎn)單元(FPU)。此外,可將該源操作數(shù)與信息一起分派以控制舍入運(yùn)算的舍入模式??蓮?立即數(shù)據(jù)獲得控制信息,即,如同在立即數(shù)據(jù)的舍入狀態(tài)字段中所規(guī)定的。如同將要在下面 進(jìn)一步描述的,在有些實(shí)現(xiàn)中,控制單元、比如處理器的控制選擇單元可接收指令以及立即 數(shù)據(jù),并且將立即數(shù)據(jù)解碼以確定是否替換缺省舍入模式,以及如果是這樣的話,則獲得該 立即數(shù)據(jù)中規(guī)定的舍入模式。仍參照?qǐng)D1,如果在判斷步驟115確定立即數(shù)據(jù)不包括替換指示符,則控制轉(zhuǎn)移到 步驟125。在步驟125,可分派源操作數(shù)用于在FPU進(jìn)行執(zhí)行。此外,可在例如配置寄存器 中規(guī)定的缺省舍入模式的基礎(chǔ)上執(zhí)行舍入運(yùn)算。在任一種情況下,控制都會(huì)從兩個(gè)步驟120和125傳遞到步驟130,在那里可執(zhí)行 舍入運(yùn)算。該舍入運(yùn)算按照舍入模式去除該輸入(即源操作數(shù))的分?jǐn)?shù)精度。在不同的實(shí) 施例中,可實(shí)現(xiàn)執(zhí)行舍入運(yùn)算的不同方式。例如,在許多實(shí)現(xiàn)中,F(xiàn)PU可包括加法器和舍入 單元以執(zhí)行舍入運(yùn)算。為了根據(jù)IEEE標(biāo)準(zhǔn)754執(zhí)行舍入模式,加法器可擁有源操作數(shù)作為 第一操作數(shù)以及常量值、例如零用作第二操作數(shù)。然后可將加法器的輸出饋送到舍入單元, 該舍入單元根據(jù)所選擇的操作模式將結(jié)果進(jìn)行舍入。因此,舍入單元可將它的輸入值舍入 成為整數(shù)值化的浮點(diǎn)結(jié)果。在其它的實(shí)施例中,除IEEE標(biāo)準(zhǔn)754舍入模式之外還可執(zhí)行其它舍入模式。在這 類實(shí)現(xiàn)中,可向FPU加法器饋送源操作數(shù)以及以源操作數(shù)的值和該舍入模式為基礎(chǔ)的特定 數(shù)據(jù)值作為第二操作數(shù),這將在下面進(jìn)行進(jìn)一步描述。然后可對(duì)該結(jié)果執(zhí)行舍入運(yùn)算,其 中,該舍入運(yùn)算可為IEEE標(biāo)準(zhǔn)754運(yùn)算。在其它擴(kuò)展的舍入模式的實(shí)現(xiàn)中,可將源操作數(shù) 和零值提供給FPU加法器的輸入,并且然后可將所得值根據(jù)送到舍入單元的控制信息進(jìn)行 舍入。
在執(zhí)行之后,可將舍入運(yùn)算的結(jié)果存儲(chǔ)在目的操作數(shù)中(步驟140)。在不同的實(shí) 施例中,目的操作數(shù)可以是處理器的擴(kuò)展存儲(chǔ)寄存器,但是本發(fā)明的范圍不限于此。此外, 可確定在舍入運(yùn)算期間是否發(fā)生了精度異常(判斷步驟145)。亦即,可以確定該舍入運(yùn)算 是否形成了能夠引發(fā)異常的不精確的結(jié)果。如若不是,方法100可以結(jié)束。如果產(chǎn)生了精度異常,則控制可轉(zhuǎn)到判斷步驟150。在判斷步驟150,可確定立即 數(shù)據(jù)是否包括了用于抑制精度異常的字段。亦即,在有些實(shí)現(xiàn)中,立即數(shù)據(jù)可包括抑制字 段。這個(gè)字段的值可指示出,如果產(chǎn)生精度異常的話,相關(guān)的舍入指令是否應(yīng)該抑制精度異 常。如果精度抑制指示符存在,則即使精度異常發(fā)生,也不會(huì)采取更進(jìn)一步地動(dòng)作,并且方 法100可以結(jié)束。如果立即數(shù)據(jù)不包括用于抑制精度異常的指示符,則控制可以轉(zhuǎn)到步驟 160。在步驟160,可在狀態(tài)寄存器中設(shè)置精度異常的標(biāo)志。例如,在有些實(shí)現(xiàn)中,狀態(tài)寄存 器可對(duì)應(yīng)于MXCSR,但是本發(fā)明的范圍不限于這個(gè)方面。以在狀態(tài)寄存器中的這個(gè)標(biāo)志的狀 態(tài)為基礎(chǔ),可能發(fā)生精度異常(例如,如果該標(biāo)志是無(wú)屏蔽的)。如果是這樣的話,則可例 如經(jīng)由軟件處理器來(lái)執(zhí)行適當(dāng)?shù)奶幚硪蕴幚碓摦惓!H绻麡?biāo)志是被屏蔽的,即使精度異常 發(fā)生了并且在狀態(tài)寄存器進(jìn)行了標(biāo)記,則相對(duì)于設(shè)置的標(biāo)志不會(huì)采取任何動(dòng)作。盡管在圖 1的實(shí)施例中對(duì)于這個(gè)具體實(shí)現(xiàn)進(jìn)行了描述,但是可以理解的是,本發(fā)明的范圍不限于這個(gè) 方面。現(xiàn)在參照?qǐng)D2,所示的是根據(jù)本發(fā)明的一個(gè)實(shí)施例的處理器一部分的框圖。如圖2 所示,處理器200可包括控制選擇單元210,經(jīng)過(guò)耦合用以從寄存器205 (它可能是通用處 理器寄存器)接收例如由微操作(μ op)產(chǎn)生的輸入的指令信息以及與此相關(guān)的立即數(shù)據(jù)。 μ OP可響應(yīng)用于執(zhí)行給定舍入運(yùn)算的單個(gè)ISA的指令而產(chǎn)生。在各種實(shí)施例中,控制選擇 單元210可以對(duì)立即數(shù)據(jù)解碼,其中該控制選擇單元210可由硬件、軟件、固件或它們的結(jié) 合來(lái)實(shí)現(xiàn)。在立即數(shù)據(jù)的基礎(chǔ)上,可以確定是否替換例如在存儲(chǔ)了當(dāng)前舍入控制狀態(tài)220 的控制或者配置寄存器中所表示的處理器的當(dāng)前舍入模式。如果是這樣的話,控制選擇單 元210可以解碼立即數(shù)據(jù)的模式字段,即舍入模式字段,來(lái)確定恰當(dāng)?shù)纳崛肽J健?刂七x擇單元210可耦合到浮點(diǎn)單元(FPU) 240以在輸入信息的基礎(chǔ)上向其提供 控制指令。如圖2中進(jìn)一步所示,擴(kuò)展寄存器文件、比如所謂的擴(kuò)展(XMM)寄存器230可出 現(xiàn)在處理器200之內(nèi),其中該處理器200可包括在作為用于舍入運(yùn)算的源和目的操作數(shù)的 指令中所確定的寄存器。因此,XMM寄存器230可耦合到FPU 240以對(duì)其提供源操作數(shù)并 從其中接收目的操作數(shù)。 在各種實(shí)施例中,F(xiàn)PU 240可包括各種電路以對(duì)數(shù)據(jù)執(zhí)行操作。在圖2的實(shí)施例 中,F(xiàn)PU 240包括FPU加法器242。具體地說(shuō),如圖2所示,F(xiàn)PU加法器242可被耦合以接收 輸入操作數(shù),例如第一源操作數(shù)和第二源操作數(shù)(即,操作數(shù)Sl和S2)。FPU 240也可包括 FPU舍入器244,它耦合到FPU加法器242的輸出。在各種實(shí)施例中,F(xiàn)PU加法器242可產(chǎn) 生運(yùn)算的無(wú)限精確結(jié)果。然而,給定了存儲(chǔ)器及其它約束,可能會(huì)將結(jié)果進(jìn)行舍入來(lái)以所希 望的格式例如單精度或者雙精度浮點(diǎn)元素提供最終結(jié)果。相應(yīng)地,F(xiàn)PU舍入器244可從FPU 加法器242接收無(wú)限精確的結(jié)果并且執(zhí)行舍入運(yùn)算,例如由處理器200的當(dāng)前舍入模式所 指示的,或者以來(lái)自立即數(shù)據(jù)的控制為基礎(chǔ),其中該立即數(shù)據(jù)采用指令獲得,即經(jīng)由控制選 擇單元210。注意,盡管FPU舍入器244通常可接收在FPU加法器242中作為數(shù)學(xué)運(yùn)算結(jié)果 出現(xiàn)的無(wú)限精確的結(jié)果,但是在不同的實(shí)現(xiàn)中,擁有舍入指令的源操作數(shù)可能已經(jīng)是有限精度格式。在這些情況下,F(xiàn)PU舍入器244可接收其輸入值(例如對(duì)應(yīng)于給定舍入指令的 源操作數(shù))并且產(chǎn)生例如對(duì)應(yīng)于最接近的整數(shù)值的舍入結(jié)果。因此,以給定的舍入指令為基礎(chǔ),F(xiàn)PU 240可以對(duì)例如來(lái)自XMM寄存器230之一、 由來(lái)自控制選擇單元210的信息所控制的給定源操作數(shù)執(zhí)行舍入運(yùn)算。此外,在舍入運(yùn)算 完成的時(shí)候,可將結(jié)果存儲(chǔ)到例如在XMM寄存器230之中不同的寄存器上。如果精度異常 在運(yùn)算期間發(fā)生,則通??稍贔P狀態(tài)寄存器225設(shè)置標(biāo)志來(lái)表明。然而,在各種實(shí)施例中, 如果與舍入指令有關(guān)的立即數(shù)據(jù)指示了精度抑制,則不設(shè)置這樣的標(biāo)志。盡管在圖2的實(shí) 施例中對(duì)于這個(gè)具體實(shí)現(xiàn)進(jìn)行了描述,但是可以理解的是,本發(fā)明的范圍不限于這個(gè)方面。 例如,在有些實(shí)施例中,例如由舍入控制狀態(tài)220和FP狀態(tài)寄存器225所表示的控制和情 況狀態(tài)可被存儲(chǔ)在單個(gè)CSR例如MXCSR中。注意,可通過(guò)不同的形式向控制選擇單元210提供立即數(shù)據(jù)。例如,在有些實(shí)現(xiàn) 中,立即數(shù)據(jù)可以采用單字節(jié)數(shù)據(jù)元素的形式,但是本發(fā)明的范圍不限于此。此外,在立即 數(shù)據(jù)元素之內(nèi)可實(shí)現(xiàn)不同方式的編碼控制信息?,F(xiàn)在參照?qǐng)D3,所示的是根據(jù)本發(fā)明的一個(gè) 實(shí)施例的立即數(shù)據(jù)元素的框圖。如圖3所示,立即數(shù)據(jù)元素300可為包括替換指示符310、 模式控制字段320、精度替換指示符330和保留字段340的8比特字。盡管在圖3的實(shí)施例 顯示了這個(gè)具體實(shí)現(xiàn),但是本發(fā)明的范圍不限于這種方式。在圖3的實(shí)施例中,替換指示符310可用來(lái)確定與立即數(shù)據(jù)元素300有關(guān)的舍入 指令的替換狀態(tài)。如下面表1所示,替換指示符310可設(shè)置為邏輯低電平來(lái)指示缺省舍入 模式(例如由配置寄存器如MXCSR所表示)的替換。邏輯高電平值指示缺省模式的使用。表 1 如果替換指示符310指示將要替換缺省舍入模式,那么可對(duì)舍入模式字段320進(jìn) 行解碼以確定與舍入指令相關(guān)的舍入模式。如下面表2所示,在有些實(shí)現(xiàn)中,可支持六種舍 入模式,包括由IEEE標(biāo)準(zhǔn)754規(guī)定的四種舍入模式,以及兩種擴(kuò)展的舍入模式,將在下面對(duì) 其更進(jìn)一步地進(jìn)行討論。表2 立即數(shù)據(jù)元素300還包括精度抑制指示符330,可對(duì)其進(jìn)行設(shè)置來(lái)指示不精確結(jié) 果的容差(allowance),使得精度異常即使在相關(guān)指令的運(yùn)算期間發(fā)生時(shí)也不會(huì)導(dǎo)致在狀 態(tài)寄存器中的異常標(biāo)志的設(shè)置。具體地,如下面表3所示,精度抑制指示符330可以采用以 下形式表3 注意,精度抑制指示符330可與不同語(yǔ)言、例如C99、Fortran和Java的用戶級(jí)指 令結(jié)合使用。最后,在一些實(shí)施例中,可以為額外的信息保留保留字段340。還要注意,在 表1-3中規(guī)定的具體值、以及指示符和字段的具體位置和大小不受限制,并且各種改變、修 改和擴(kuò)展都在本發(fā)明的范圍之內(nèi)。如同上面描述的,在許多實(shí)現(xiàn)中,舍入運(yùn)算可響應(yīng)ISA的單個(gè)指令來(lái)執(zhí)行。以這種 方法,提供了用戶級(jí)的支持,并且可以有效地執(zhí)行舍入運(yùn)算。在給定的ISA中,可出現(xiàn)并使 用若干這類舍入指令來(lái)處理具體的舍入運(yùn)算,例如雙精度和單精度浮點(diǎn)值以及壓縮和標(biāo)量 值的舍入。這些舍入指令也可用于將浮點(diǎn)數(shù)據(jù)元素的分?jǐn)?shù)部分舍去。除ISA級(jí)指令的存在 之外,立即數(shù)據(jù)或者其它的控制字段信息可以允許舍入模式(連同其它屬性一道)的有效 局部控制,而不必修改處理器的當(dāng)前缺省狀態(tài)。如下面表4所示,在ISA之中可以出現(xiàn)不同風(fēng)格的舍入指令以對(duì)不同類型的數(shù)據(jù) 元素實(shí)現(xiàn)有效的舍入運(yùn)算。表 4 作為這些ISA指令如何操作的例子,可使用R0UNDPD指令,通過(guò)在直接元素(即 MM 8)中規(guī)定的舍入模式來(lái)把源操作數(shù)(即可從XMM寄存器或者存儲(chǔ)器得到的第二操作 數(shù))中的兩個(gè)雙精度浮點(diǎn)值進(jìn)行舍入,并且將結(jié)果放到目的操作數(shù)(即可以是XMM寄存器 的第一操作數(shù))中。直接元素可以指定用于舍入運(yùn)算的控制字段。再參考表1-3,立即數(shù)據(jù) 的比特4(即圖3的指示符330)可以控制精度異常的處理器的行為,而比特0(即圖3的指 示符310)可以選擇舍入模式控制的源。最后,比特3 1(即圖3的字段320)可以指定非 粘性舍入模式值。注意,在有些實(shí)施例中,如果任何源操作數(shù)是信令而不是數(shù)字(SNaN),那 么它將要轉(zhuǎn)換為靜止的NaN(QNaN)。如果將配置寄存器對(duì)于非正常設(shè)置為零(DAZ),那么非 正常可在舍入之前轉(zhuǎn)換為零。如果將配置寄存器對(duì)于非正常刷新(flush denormal)設(shè)置 為零(FTZ),那么非正常可在舍入之后轉(zhuǎn)換為零。作為這些ISA指令如何操作的另一個(gè)例子,R0UNDPS指令可用來(lái)在源操作數(shù)中將 四個(gè)壓縮的單精度浮點(diǎn)值進(jìn)行舍入并且將結(jié)果放到目的操作數(shù)中。為了說(shuō)明的目的,具體 的舍入指令可以采用以下形式R0UNDPS χ匪0,χ匪1,i匪8 (舍入到最接近的整數(shù))。這個(gè)指令可取第一寄存器即xmml中的壓縮單精度值,如同由立即數(shù)據(jù)(即imm8) 的舍入模式所規(guī)定的將每個(gè)值舍入到最接近的整數(shù)值,并且將結(jié)果存儲(chǔ)到第二寄存器、即 xmmO中。下面的表5顯示了存在于源操作數(shù)(即xmml)中、各對(duì)應(yīng)于有限精度浮點(diǎn)值的典 型值以及存儲(chǔ)在目的操作數(shù)(即xmmO)中、對(duì)應(yīng)于整數(shù)值化的浮點(diǎn)數(shù)、即與初始源值最接近 的整數(shù)值的所得舍入值。表 5 注意,在另外的實(shí)現(xiàn)中,舍入運(yùn)算可響應(yīng)從源FP值生成的整數(shù)值(即,與整數(shù)值化 FP值相反)的指令。其它的實(shí)施例可以實(shí)現(xiàn)到較低精度浮點(diǎn)表示法的舍入。這樣的實(shí)施例 可根據(jù)標(biāo)準(zhǔn)舍入模式或者特殊的舍入模式來(lái)提供舍入源值的有效方式,其中特殊的舍入模式由配置寄存器中缺省舍入模式或者在與該指令有關(guān)的立即數(shù)據(jù)中規(guī)定的局部舍入模式 來(lái)進(jìn)行控制。在各種實(shí)施例中,立即數(shù)據(jù)可提供控制信息以執(zhí)行不同于IEEE標(biāo)準(zhǔn)754舍入運(yùn)算 的舍入模式。這些舍入模式可以包括部分向遠(yuǎn)離零的方向舍入以及向遠(yuǎn)離零的方向舍入模 式?,F(xiàn)在參照?qǐng)D4,所示的是根據(jù)本發(fā)明的一個(gè)實(shí)施例執(zhí)行舍入運(yùn)算的方法的流程圖。如 圖4所示,方法400可用來(lái)執(zhí)行這些擴(kuò)展的舍入模式。方法400可通過(guò)確定源操作數(shù)是否 大于或等于零(菱形框410)來(lái)開(kāi)始。如果是這樣的話,控制可以轉(zhuǎn)到步驟420,在那里可從 源操作數(shù)減去預(yù)定的值(步驟420)。例如,F(xiàn)P加法器可以在所選擇的具體舍入模式的基礎(chǔ) 上從源操作數(shù)減去給定的值。當(dāng)然,這個(gè)減法可通過(guò)與預(yù)定值的負(fù)值相加來(lái)執(zhí)行。然后,可 對(duì)FP加法的結(jié)果執(zhí)行所選定的舍入運(yùn)算(步驟430)。在有些實(shí)現(xiàn)中,IEEE標(biāo)準(zhǔn)754舍入 運(yùn)算、例如截尾(也稱為舍入到零)可對(duì)結(jié)果執(zhí)行以獲得擴(kuò)展的舍入模式結(jié)果。如果在菱 形框410確定該源操作數(shù)小于零,那么控制轉(zhuǎn)移到步驟440。在步驟440,可在FP加法器中 將預(yù)定的值(它可能是與以上所述相同的值)加到源操作數(shù)上。然后,在步驟450,可對(duì)結(jié) 果執(zhí)行選定的舍入運(yùn)算以獲得由此產(chǎn)生的舍入值。雖然本發(fā)明的范圍不限于這個(gè)方面,但是部分向遠(yuǎn)離零的方向舍入運(yùn)算可以使用 0.5的值作為其預(yù)定的值,而向遠(yuǎn)離零的方向舍入運(yùn)算可以使用1”,它對(duì)應(yīng)于小于但不等 于一的最接近的可表示的FP值。對(duì)于單精度和雙精度FP值,0. 5可分別對(duì)應(yīng)于0x3f000000 和0x3fe0000000000000。對(duì)于單精度和雙精度FP值,-0. 5可分別對(duì)應(yīng)于OxbfOOOOOO 和0xbfe000000000000。對(duì)于單精度和雙精度FP值,1 〃可分別對(duì)應(yīng)于0x3f7fffff 和 0x3fefffffffffffff。對(duì)于單精度和雙精度FP值,-1〃可以分別對(duì)應(yīng)于0xbf7fffff 和 Oxbfefffffffffffff。在下面表6中顯示的是用于執(zhí)行這些操作的源代碼例子。表 6 Table6
A—ROUND一TOWARD—ZERO(A - 1) ELSE W (A > 0)
AGROUND JTO WARD ZERO(A 1)
在這些例子中,運(yùn)算ROUND TOWARD ZERO是IEEE標(biāo)準(zhǔn)754的截尾操作,它對(duì)加法 /減法運(yùn)算的結(jié)果執(zhí)行。注意,在執(zhí)行這些擴(kuò)展舍入模式的運(yùn)算中,可提供預(yù)定的值作為給 FP加法器的第二源操作數(shù)(例如,如同在圖2實(shí)施例中的S2)?;蛘?,在有些實(shí)施例中,如同其它的舍入運(yùn)算一樣,第二源操作數(shù)可以為零,并且可將控制信號(hào)發(fā)送到舍入單元以實(shí) 現(xiàn)選定的擴(kuò)展舍入模式運(yùn)算。這樣,在各種實(shí)施例中,可實(shí)現(xiàn)對(duì)于執(zhí)行舍入的增強(qiáng)。這些增強(qiáng)可以避免執(zhí)行各 種操作的需要,例如存儲(chǔ)控制寄存器的狀態(tài)、執(zhí)行空FP運(yùn)算以及重新設(shè)置狀態(tài),或者甚至 是轉(zhuǎn)換數(shù)字到整數(shù)以及回到浮點(diǎn)的近似簡(jiǎn)化。通過(guò)抑制不精確的精度異常,用于舍入的相 符不同語(yǔ)言的支持可被簡(jiǎn)化,而實(shí)現(xiàn)也可以遵守某些舍入功能的標(biāo)準(zhǔn)舍入模式,例如在C99實(shí)施例可以在許多不同的系統(tǒng)類型中實(shí)現(xiàn)?,F(xiàn)在參照?qǐng)D5,所示的是根據(jù)本發(fā)明的 一個(gè)實(shí)施例的系統(tǒng)的框圖。如圖5所示,多處理器系統(tǒng)500是點(diǎn)對(duì)點(diǎn)互連系統(tǒng),并且包括經(jīng) 由點(diǎn)對(duì)點(diǎn)互連550耦合的第一處理器570和第二處理器580。如圖5所示,處理器570和 580中每一個(gè)都可以是多核處理器,包括第一和第二處理器核(即,處理器核574a和574b 以及處理器核584a和584b)。注意,每一個(gè)核都可響應(yīng)根據(jù)本發(fā)明的一實(shí)施例的ISA級(jí)指 令來(lái)執(zhí)行舍入運(yùn)算。第一處理器570還包括點(diǎn)對(duì)點(diǎn)(P-P)接口 576和578。類似地,第二處理器580包 括P-P接口 586和588。如圖5所示,存儲(chǔ)控制器集線器(MCH) 572和582將處理器耦合到 各自的存儲(chǔ)器上,即存儲(chǔ)器532和存儲(chǔ)器534,它們可能是本地連接到各自處理器的主存儲(chǔ) 器的部分。第一處理器570和第二處理器580可分別經(jīng)由P_P互連552和554耦合到芯片組 590上。如圖5所示,芯片組590包括P-P接口 594和598。此外,芯片組590包括接口 592 以將芯片組590與高性能圖形引擎538相耦合。在一個(gè)實(shí)施例中,高級(jí)圖形接口(AGP)總 線539可用來(lái)將圖形引擎538耦合到芯片組590。AGP總線539可符合加速圖形端口接口 規(guī)格修訂版本2. 0,它于1998年5月4日由加利福尼亞Santa Clara的英特爾公司發(fā)表。 或者,點(diǎn)對(duì)點(diǎn)互連539可以耦合這些元件。隨后,芯片組590可經(jīng)由接口 596耦合到第一總線516。在一個(gè)實(shí)施例中,第一總 線516可以是外設(shè)部件互連(PCI)總線,如由PCI局部總線規(guī)范,生產(chǎn)版本,修訂版2. 1,日 期是1995年6月所定義的,或者例如PCIExpress 總線或者其它第三代輸入/出(I/O)中 間聯(lián)接總線的總線,但本發(fā)明的范圍不限于此。如圖5所示,各種I/O設(shè)備514可耦合到第一總線516,以及總線橋518,其中該總 線橋518將第一總線516耦合到第二總線520。在一個(gè)實(shí)施例中,第二總線520可以是低引 腳數(shù)(LPC)總線。在一個(gè)實(shí)施例中,各種設(shè)備可以耦合到第二總線520,其中包括例如鍵盤 /鼠標(biāo)522、通訊裝置526以及諸如可包括代碼530的磁盤驅(qū)動(dòng)器或者其它大容量存儲(chǔ)裝置 之類的數(shù)據(jù)存儲(chǔ)單元528。此外,音頻I/O 524可耦合到第二總線520。注意,其它的體系 結(jié)構(gòu)也是可能的。例如,代替圖5的點(diǎn)對(duì)點(diǎn)體系結(jié)構(gòu),系統(tǒng)可以實(shí)現(xiàn)多點(diǎn)總線或者其它這樣 的體系結(jié)構(gòu)。實(shí)施例可通過(guò)編碼來(lái)實(shí)現(xiàn),并且可存儲(chǔ)在存儲(chǔ)介質(zhì)上,其中已經(jīng)在該存儲(chǔ)介質(zhì)上 存儲(chǔ)了用于為系統(tǒng)編制程序使其執(zhí)行指令的指令。該存儲(chǔ)介質(zhì)可包括但是不局限于任何類 型的盤,包括軟盤、光盤、光盤只讀存儲(chǔ)器(CD-ROM)、可重寫光盤(CD-RW)以及磁光盤、半導(dǎo) 體裝置例如只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜 態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、可擦除可編程只讀存儲(chǔ)器(EPROM)、閃存、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、磁或光卡、或者任何其它類型的適于存儲(chǔ)電子指令的介質(zhì)。
盡管已經(jīng)針對(duì)有限數(shù)量的實(shí)施例描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員能夠從其 中知道多種修改和變化。所附的權(quán)利要求覆蓋了落入本發(fā)明的真正的精神和范圍之內(nèi)的所 有這樣的修改和變化。
權(quán)利要求
一種處理器,包括控制器,對(duì)舍入指令作出響應(yīng),如果缺省舍入模式將被替換,該控制器從舍入指令的8比特立即操作數(shù)中確定舍入模式,其中舍入指令包括識(shí)別源操作數(shù)的第一字段,識(shí)別目的操作數(shù)的第二字段和識(shí)別立即操作數(shù)的立即字段,其中立即操作數(shù)包括指示舍入模式的模式字段,指示缺省舍入模式是否將被替換的替換指示符和指示處理器如何處理精度異常的精度抑制指示符;第一擴(kuò)展多媒體XMM寄存器,用于存儲(chǔ)具有兩個(gè)壓縮的64位雙精度浮點(diǎn)值的目的操作數(shù);第二XMM寄存器,用于存儲(chǔ)具有兩個(gè)壓縮的64位雙精度浮點(diǎn)值的源操作數(shù);多媒體擴(kuò)展控制和狀態(tài)寄存器,用于存儲(chǔ)缺省舍入模式;和浮點(diǎn)單元,耦合到控制器和第一和第二XMM寄存器,用于按照舍入模式對(duì)源操作數(shù)執(zhí)行舍入運(yùn)算并將舍入的源操作數(shù)寫入第一XMM寄存器。
2.如權(quán)利要求1所述的處理器,其特征在于,所述浮點(diǎn)單元還包括浮點(diǎn)加法器,用來(lái)根據(jù)所述舍入模式來(lái)把預(yù)定值加到所述源操作數(shù)上;和浮點(diǎn)舍入器,用于對(duì)加法結(jié)果進(jìn)行舍入運(yùn)算。
3.如權(quán)利要求2所述的處理器,其特征在于,根據(jù)將被舍入的源操作數(shù)和所述舍入模 式來(lái)確定所述預(yù)定值。
4.如權(quán)利要求1所述的處理器,其特征在于,所述舍入指令包括最接近的偶模式、 朝_⑴模式、朝+⑴模式、截?cái)嗄J?、部分遠(yuǎn)離0的模式和向遠(yuǎn)離0的方向舍入中的至少一 種模式。
5.一種處理器,包括控制器,對(duì)舍入指令作出響應(yīng),如果缺省舍入模式將被替換,該控制器從舍入指令的8 比特立即操作數(shù)中確定舍入模式,其中舍入指令包括識(shí)別源操作數(shù)的第一字段,識(shí)別目的 操作數(shù)的第二字段和識(shí)別立即操作數(shù)的立即字段,其中立即操作數(shù)包括指示舍入模式的模 式字段,指示缺省舍入模式是否將被替換的替換指示符和指示處理器如何處理精度異常的 精度抑制指示符;第一擴(kuò)展多媒體(XMM)寄存器,用于存儲(chǔ)具有兩個(gè)壓縮的64位雙精度浮點(diǎn)值的目的操 作數(shù);其中具有兩個(gè)壓縮的64位雙精度浮點(diǎn)值的源操作數(shù)被存儲(chǔ)在128位存儲(chǔ)器中;多媒體擴(kuò)展控制和狀態(tài)寄存器,用于存儲(chǔ)缺省舍入模式;和浮點(diǎn)單元,耦合到控制器、第一 XMM寄存器和存儲(chǔ)器,用于按照舍入模式對(duì)源操作數(shù)執(zhí) 行舍入運(yùn)算并將舍入的源操作數(shù)寫入第一 XMM寄存器。
6.如權(quán)利要求5所述的處理器,其特征在于,所述浮點(diǎn)單元還包括浮點(diǎn)加法器,用來(lái)根據(jù)所述舍入模式來(lái)把預(yù)定值加到所述源操作數(shù)上;和浮點(diǎn)舍入器,用于對(duì)加法結(jié)果進(jìn)行舍入運(yùn)算。
7.如權(quán)利要求6所述的處理器,其特征在于,根據(jù)將被舍入的源操作數(shù)和所述舍入模 式來(lái)確定所述預(yù)定值。
8.如權(quán)利要求5所述的處理器,其特征在于,所述舍入指令包括最接近的偶模式、 朝_⑴模式、朝+⑴模式、截?cái)嗄J?、部分遠(yuǎn)離0的模式和向遠(yuǎn)離0的方向舍入中的至少一2種模式。
9.一種處理器,包括控制器,對(duì)舍入指令作出響應(yīng),如果缺省舍入模式將被替換,該控制器從舍入指令的8 比特立即操作數(shù)中確定舍入模式,其中舍入指令包括識(shí)別源操作數(shù)的第一字段,識(shí)別目的 操作數(shù)的第二字段和識(shí)別立即操作數(shù)的立即字段,其中立即操作數(shù)包括指示舍入模式的模 式字段,指示缺省舍入模式是否將被替換的替換指示符和指示處理器如何處理精度異常的 精度抑制指示符;第一擴(kuò)展多媒體XMM寄存器,用于存儲(chǔ)具有四個(gè)壓縮的32位單精度浮點(diǎn)值的目的操作數(shù);第二 XMM寄存器,用于存儲(chǔ)具有四個(gè)壓縮的32位單精度浮點(diǎn)值的源操作數(shù); 多媒體擴(kuò)展控制和狀態(tài)寄存器,用于存儲(chǔ)缺省舍入模式;和浮點(diǎn)單元,耦合到控制器和第一和第二 XMM寄存器,用于按照舍入模式對(duì)源操作數(shù)執(zhí) 行舍入運(yùn)算并將舍入的源操作數(shù)寫入第一 XMM寄存器。
10.如權(quán)利要求9所述的處理器,其特征在于,所述浮點(diǎn)單元還包括 浮點(diǎn)加法器,用來(lái)根據(jù)所述舍入模式來(lái)把預(yù)定值加到所述源操作數(shù)上;和 浮點(diǎn)舍入器,用于對(duì)加法結(jié)果進(jìn)行舍入運(yùn)算。
11.如權(quán)利要求10所述的處理器,其特征在于,根據(jù)將被舍入的源操作數(shù)和所述舍入 模式來(lái)確定所述預(yù)定值。
12.如權(quán)利要求9所述的處理器,其特征在于,所述舍入指令包括最接近的偶模式、 朝_⑴模式、朝+⑴模式、截?cái)嗄J?、部分遠(yuǎn)離0的模式和向遠(yuǎn)離0的方向舍入中的至少一 種模式。
13.一種處理器,包括控制器,對(duì)舍入指令作出響應(yīng),如果缺省舍入模式將被替換,該控制器從舍入指令的8 比特立即操作數(shù)中確定舍入模式,其中舍入指令包括識(shí)別源操作數(shù)的第一字段,識(shí)別目的 操作數(shù)的第二字段和識(shí)別立即操作數(shù)的立即字段,其中立即操作數(shù)包括指示舍入模式的模 式字段,指示缺省舍入模式是否將被替換的替換指示符和指示處理器如何處理精度異常的 精度抑制指示符;第一擴(kuò)展多媒體XMM寄存器,用于存儲(chǔ)具有四個(gè)壓縮的32位單精度浮點(diǎn)值的目的操作數(shù);其中具有四個(gè)壓縮的32位單精度浮點(diǎn)值的源操作數(shù)被存儲(chǔ)在128位存儲(chǔ)器中; 多媒體擴(kuò)展控制和狀態(tài)寄存器,用于存儲(chǔ)缺省舍入模式;和浮點(diǎn)單元,耦合到控制器、第一 XMM寄存器和存儲(chǔ)器,用于按照舍入模式對(duì)源操作數(shù)執(zhí) 行舍入運(yùn)算并將舍入的源操作數(shù)寫入第一 XMM寄存器。
14.如權(quán)利要求13所述的處理器,其特征在于,所述浮點(diǎn)單元還包括 浮點(diǎn)加法器,用來(lái)根據(jù)所述舍入模式來(lái)把預(yù)定值加到所述源操作數(shù)上;和 浮點(diǎn)舍入器,用于對(duì)加法結(jié)果進(jìn)行舍入運(yùn)算。
15.如權(quán)利要求14所述的處理器,其特征在于,根據(jù)將被舍入的源操作數(shù)和所述舍入 模式來(lái)確定所述預(yù)定值。
16.如權(quán)利要求13所述的處理器,其特征在于,所述舍入指令包括最接近的偶模式、朝_⑴模式、朝+⑴模式、截?cái)嗄J?、部分遠(yuǎn)離0的模式和向遠(yuǎn)離0的方向舍入中的至少一 種模式。
17.一種處理器,包括控制器,對(duì)舍入指令作出響應(yīng),如果缺省舍入模式將被替換,該控制器從舍入指令的8 比特立即操作數(shù)中確定舍入模式,其中舍入指令包括識(shí)別源操作數(shù)的第一字段,識(shí)別目的 操作數(shù)的第二字段和識(shí)別立即操作數(shù)的立即字段,其中立即操作數(shù)包括指示舍入模式的模 式字段,指示缺省舍入模式是否將被替換的替換指示符和指示處理器如何處理精度異常的 精度抑制指示符;第一擴(kuò)展多媒體XMM寄存器,用于存儲(chǔ)具有兩個(gè)標(biāo)量64位雙精度浮點(diǎn)值的目的操作數(shù);第二 XMM寄存器,用于存儲(chǔ)具有兩個(gè)標(biāo)量64位雙精度浮點(diǎn)值的源操作數(shù); 多媒體擴(kuò)展控制和狀態(tài)寄存器,用于存儲(chǔ)缺省舍入模式;和浮點(diǎn)單元,耦合到控制器和第一和第二 XMM寄存器,用于按照舍入模式對(duì)源操作數(shù)的 下64位雙精度浮點(diǎn)值執(zhí)行舍入運(yùn)算并將舍入的源操作數(shù)寫入第一 XMM寄存器的最低位置, 其中將源操作數(shù)的上64位雙精度浮點(diǎn)值寫入第一 XMM寄存器,而不改變。
18.如權(quán)利要求17所述的處理器,其特征在于,所述浮點(diǎn)單元還包括 浮點(diǎn)加法器,用來(lái)根據(jù)所述舍入模式來(lái)把預(yù)定值加到所述源操作數(shù)上;和 浮點(diǎn)舍入器,用于對(duì)加法結(jié)果進(jìn)行舍入運(yùn)算。
19.如權(quán)利要求18所述的處理器,其特征在于,根據(jù)將被舍入的源操作數(shù)和所述舍入 模式來(lái)確定所述預(yù)定值。
20.如權(quán)利要求17所述的處理器,其特征在于,所述舍入指令包括最接近的偶模式、 朝-⑴模式、朝+⑴模式、截?cái)嗄J健⒉糠诌h(yuǎn)離0的模式和向遠(yuǎn)離0的方向舍入中的至少一 種模式。
21.一種處理器,包括控制器,對(duì)舍入指令作出響應(yīng),如果缺省舍入模式將被替換,該控制器從舍入指令的8 比特立即操作數(shù)中確定舍入模式,其中舍入指令包括識(shí)別源操作數(shù)的第一字段,識(shí)別目的 操作數(shù)的第二字段和識(shí)別立即操作數(shù)的立即字段,其中立即操作數(shù)包括指示舍入模式的模 式字段,指示缺省舍入模式是否將被替換的替換指示符和指示處理器如何處理精度異常的 精度抑制指示符;第一擴(kuò)展多媒體XMM寄存器,用于存儲(chǔ)具有兩個(gè)標(biāo)量64位雙精度浮點(diǎn)值的目的操作數(shù);其中具有兩個(gè)標(biāo)量64位雙精度浮點(diǎn)值的源操作數(shù)被存儲(chǔ)在128位存儲(chǔ)器中; 多媒體擴(kuò)展控制和狀態(tài)寄存器,用于存儲(chǔ)缺省舍入模式;和浮點(diǎn)單元,耦合到控制器、第一 XMM寄存器和存儲(chǔ)器,用于按照舍入模式對(duì)源操作數(shù)的 下64位雙精度浮點(diǎn)值執(zhí)行舍入運(yùn)算并將舍入的源操作數(shù)寫入第一 XMM寄存器的最低位置, 其中將源操作數(shù)的上64位雙精度浮點(diǎn)值寫入第一 XMM寄存器,而不改變。
22.如權(quán)利要求21所述的處理器,其特征在于,所述浮點(diǎn)單元還包括 浮點(diǎn)加法器,用來(lái)根據(jù)所述舍入模式來(lái)把預(yù)定值加到所述源操作數(shù)上;和 浮點(diǎn)舍入器,用于對(duì)加法結(jié)果進(jìn)行舍入運(yùn)算。
23.如權(quán)利要求22所述的處理器,其特征在于,根據(jù)將被舍入的源操作數(shù)和所述舍入 模式來(lái)確定所述預(yù)定值。
24.如權(quán)利要求21所述的處理器,其特征在于,所述舍入指令包括最接近的偶模式、 朝_⑴模式、朝+⑴模式、截?cái)嗄J?、部分遠(yuǎn)離0的模式和向遠(yuǎn)離0的方向舍入中的至少一 種模式。
25.—種處理器,包括控制器,對(duì)舍入指令作出響應(yīng),如果缺省舍入模式將被替換,該控制器從舍入指令的8 比特立即操作數(shù)中確定舍入模式,其中舍入指令包括識(shí)別源操作數(shù)的第一字段,識(shí)別目的 操作數(shù)的第二字段和識(shí)別立即操作數(shù)的立即字段,其中立即操作數(shù)包括指示舍入模式的模 式字段,指示缺省舍入模式是否將被替換的替換指示符和指示處理器如何處理精度異常的 精度抑制指示符;第一擴(kuò)展多媒體XMM寄存器,用于存儲(chǔ)具有四個(gè)標(biāo)量32位單精度浮點(diǎn)值的目的操作數(shù);第二 XMM寄存器,用于存儲(chǔ)具有四個(gè)標(biāo)量32位單精度浮點(diǎn)值的源操作數(shù); 多媒體擴(kuò)展控制和狀態(tài)寄存器,用于存儲(chǔ)缺省舍入模式;和浮點(diǎn)單元,耦合到控制器和第一和第二 XMM寄存器,用于按照舍入模式對(duì)源操作數(shù)的 下32位雙精度浮點(diǎn)值執(zhí)行舍入運(yùn)算并將舍入的源操作數(shù)寫入第一 XMM寄存器的最低位置, 其中將源操作數(shù)的三個(gè)上32位單精度浮點(diǎn)值寫入第一 XMM寄存器,而不改變。
26.如權(quán)利要求25所述的處理器,其特征在于,所述浮點(diǎn)單元還包括 浮點(diǎn)加法器,用來(lái)根據(jù)所述舍入模式來(lái)把預(yù)定值加到所述源操作數(shù)上;和 浮點(diǎn)舍入器,用于對(duì)加法結(jié)果進(jìn)行舍入運(yùn)算。
27.如權(quán)利要求26所述的處理器,其特征在于,根據(jù)將被舍入的源操作數(shù)和所述舍入 模式來(lái)確定所述預(yù)定值。
28.如權(quán)利要求25所述的處理器,其特征在于,所述舍入指令包括最接近的偶模式、 朝_⑴模式、朝+⑴模式、截?cái)嗄J?、部分遠(yuǎn)離0的模式和向遠(yuǎn)離0的方向舍入中的至少一 種模式。
29.—種處理器,包括控制器,對(duì)舍入指令作出響應(yīng),如果缺省舍入模式將被替換,該控制器從舍入指令的8 比特立即操作數(shù)中確定舍入模式,其中舍入指令包括識(shí)別源操作數(shù)的第一字段,識(shí)別目的 操作數(shù)的第二字段和識(shí)別立即操作數(shù)的立即字段,其中立即操作數(shù)包括指示舍入模式的模 式字段,指示缺省舍入模式是否將被替換的替換指示符和指示處理器如何處理精度異常的 精度抑制指示符;第一擴(kuò)展多媒體XMM寄存器,用于存儲(chǔ)具有四個(gè)標(biāo)量32位單精度浮點(diǎn)值的目的操作數(shù);其中具有四個(gè)32位單精度浮點(diǎn)值的源操作數(shù)被存儲(chǔ)在128位存儲(chǔ)器中; 多媒體擴(kuò)展控制和狀態(tài)寄存器,用于存儲(chǔ)缺省舍入模式;和浮點(diǎn)單元,耦合到控制器、第一 XMM寄存器和存儲(chǔ)器,用于按照舍入模式對(duì)源操作數(shù)的 下32位單精度浮點(diǎn)值執(zhí)行舍入運(yùn)算并將舍入的源操作數(shù)寫入第一 XMM寄存器的最低位置, 其中將源操作數(shù)的三個(gè)上32位單精度浮點(diǎn)值寫入第一 XMM寄存器,而不改變。
30.如權(quán)利要求29所述的處理器,其特征在于,所述浮點(diǎn)單元還包括 浮點(diǎn)加法器,用來(lái)根據(jù)所述舍入模式來(lái)把預(yù)定值加到所述源操作數(shù)上;和 浮點(diǎn)舍入器,用于對(duì)加法結(jié)果進(jìn)行舍入運(yùn)算。
31.如權(quán)利要求30所述的處理器,其特征在于,根據(jù)將被舍入的源操作數(shù)和所述舍入 模式來(lái)確定所述預(yù)定值。
32.如權(quán)利要求29所述的處理器,其特征在于,所述舍入指令包括最接近的偶模式、 朝_⑴模式、朝+⑴模式、截?cái)嗄J?、部分遠(yuǎn)離0的模式和向遠(yuǎn)離0的方向舍入中的至少一 種模式。
全文摘要
本發(fā)明涉及響應(yīng)指令執(zhí)行舍入運(yùn)算,在一個(gè)實(shí)施例中,提供了一種方法,用于在處理器中接收舍入指令和立即值,確定立即值的舍入模式替換指示符是否有效,并且如果是這樣的話,則在處理器的浮點(diǎn)單元中,響應(yīng)該舍入指令并且根據(jù)在立即操作數(shù)中規(guī)定的舍入模式,以源操作數(shù)執(zhí)行舍入運(yùn)算。對(duì)其它的實(shí)施例進(jìn)行了描述并要求其權(quán)益。
文檔編號(hào)G06F9/318GK101882064SQ201010200409
公開(kāi)日2010年11月10日 申請(qǐng)日期2007年9月21日 優(yōu)先權(quán)日2006年9月22日
發(fā)明者R·??怂鞴? S·斯托里 申請(qǐng)人:英特爾公司