亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

微處理器及其執(zhí)行指令的方法

文檔序號(hào):6606779閱讀:277來(lái)源:國(guó)知局

專利名稱::微處理器及其執(zhí)行指令的方法
技術(shù)領(lǐng)域
:本發(fā)明涉及一種在微處理器中的浮點(diǎn)運(yùn)算,特別是關(guān)于浮點(diǎn)舍入(round)指令。
背景技術(shù)
:Intel將一組新的相關(guān)SSE指令加入至其指令組R0UNDPD、ROUNDPS、R0UNDSD、以及R0UNDSS,在此統(tǒng)一稱為ROUND指令。ROUND指令舍入一浮點(diǎn)輸入數(shù)值以成為一整數(shù)數(shù)值,接著將此整數(shù)數(shù)值恢復(fù)至一浮點(diǎn)數(shù)值。在由浮點(diǎn)數(shù)值轉(zhuǎn)換至整數(shù)數(shù)值期間的舍入操作是根據(jù)舍入控制或舍入模式(roundingmode)而操作。由浮點(diǎn)至整數(shù)的這些轉(zhuǎn)換以及由整數(shù)至浮點(diǎn)的轉(zhuǎn)換實(shí)際上已眾所周知。首要操作需要確定整數(shù)最小有效位(leastsignificantbit,LSB)的位置以及確定原始數(shù)據(jù)數(shù)值(藉由一向右移位器而具有關(guān)鍵延遲)內(nèi)的二進(jìn)制舍入點(diǎn)的位置,接著需要有條件的非分?jǐn)?shù)數(shù)值(non-fractionalvalue)增量。次要操作可能需要前導(dǎo)零列舉(leadingzeroenumeration),接著需要正規(guī)化左移位以及適當(dāng)?shù)闹笖?shù)計(jì)算。必須要決定將如何在目標(biāo)浮點(diǎn)硬件設(shè)計(jì)上提供此兩操作。習(xí)知的多周期或高延遲設(shè)計(jì)在連續(xù)電路連接(sequentialcircuitconnection)上提供了必要的能力,首先,執(zhí)行向右調(diào)正移位,接著是有條件的舍入增量,然后是前導(dǎo)零列舉,最后是有條件的正規(guī)化左移位。值得注意的是,假使此方式被提供作為有效利用的硬件而不是特殊目的的硬件時(shí),此方式不利于任何其不需某部分本身具有固有延遲的連續(xù)連接的計(jì)算。假使此方式提供作為特殊目的的硬件,此方式會(huì)消耗掉有用的晶粒空間。在強(qiáng)調(diào)最大電路組件利用的高效能微處理器中這些方式是不被接受的。其它的低延遲浮點(diǎn)設(shè)計(jì)試圖使組成電路組件分隔成多個(gè)計(jì)算種類(例如,近程對(duì)遠(yuǎn)程計(jì)算(nearversusfarcalculation))所需要的最小群組。每一種類的特定特性藉由消除非必要電路組件而使得每一計(jì)算的整體延遲減少。例如,近程減法計(jì)算可能具有非重要的向右調(diào)正需求。這些設(shè)計(jì)類型可能以暫時(shí)地連續(xù)方式來(lái)提供新ROUND所必要的能力,那就是,藉由調(diào)度使用一群組而變?yōu)檎麛?shù)的轉(zhuǎn)換以及調(diào)度使用一不同群組而變?yōu)楦↑c(diǎn)的其次轉(zhuǎn)換。
發(fā)明內(nèi)容在一方面中,本發(fā)明提供一種微處理器,用以執(zhí)行一指令,此指令指定具有一預(yù)設(shè)尺寸的一浮點(diǎn)輸入操作數(shù),此指令指示微處理器使用一舍入模式來(lái)將浮點(diǎn)輸入操作數(shù)舍入至一整數(shù)數(shù)值且將整數(shù)數(shù)值返回為具有與浮點(diǎn)輸入操作數(shù)相同之預(yù)設(shè)尺寸的一浮點(diǎn)結(jié)果。此微處理器包括一指令轉(zhuǎn)譯器,用以將指令轉(zhuǎn)譯為一第一微指令與一第二微指令。微處理器也包括一執(zhí)行單元,用以執(zhí)行第一微指令與第二微指令。第一微指令接收浮點(diǎn)輸入操作數(shù)以作為輸入操作數(shù),且自浮點(diǎn)輸入操作數(shù)來(lái)產(chǎn)生一中間結(jié)果。第二微指令接收第一微指令的中間結(jié)果來(lái)作為輸入操作數(shù),且自中間結(jié)果來(lái)產(chǎn)生指令的浮點(diǎn)結(jié)果。中間結(jié)果具有與浮點(diǎn)輸入操作數(shù)相同的預(yù)設(shè)尺寸。根據(jù)另一方面,本發(fā)明提供一種執(zhí)行指令的方法,由一微處理器所執(zhí)行,此指令指定具有一預(yù)設(shè)尺寸的一浮點(diǎn)輸入操作數(shù),此指令指示微處理器使用一舍入模式來(lái)將浮點(diǎn)輸入操作數(shù)舍入至整數(shù)數(shù)值且將整數(shù)數(shù)值返回為具有與浮點(diǎn)輸入操作數(shù)相同的預(yù)設(shè)尺寸的一浮點(diǎn)結(jié)果。此方法包括將指令轉(zhuǎn)譯為一第一微指令與一第二微指令,其中,轉(zhuǎn)譯步驟由微處理器的一指令轉(zhuǎn)譯器所執(zhí)行。此方法也包括執(zhí)行第一微指令與第二微指令,其中,執(zhí)行步驟由微處理器的一執(zhí)行單元所執(zhí)行。第一微指令接收浮點(diǎn)輸入操作數(shù)以作為輸入操作數(shù),且自浮點(diǎn)輸入操作數(shù)來(lái)產(chǎn)生一中間結(jié)果。第二微指令接收第一微指令的中間結(jié)果來(lái)作為輸入操作數(shù),且自中間結(jié)果來(lái)產(chǎn)生指令的浮點(diǎn)結(jié)果。中間結(jié)果具有與浮點(diǎn)輸入操作數(shù)相同的預(yù)設(shè)尺寸。圖1100--微處理器;102〃指令高速緩存104--浮點(diǎn)加法器單元112--指令轉(zhuǎn)譯器;116--緩存器命名表(RAT);118--保留站;122〃執(zhí)行單元;124--引退單元;126--緩存器檔案與重排緩沖器132--微指令;134--ROUND指令;圖2202--X字段;204‘Y字段;206--Z字段;第3A-3B圖302--增量器;304〃舍入邏輯單元306舍入控制;312RUTRO='1322與門(AND);308異或門(XOR);316比較器;324比較器;384移位器/延伸器;386反向器(NOT);388、394、396、398多任務(wù)器(MUX);392增量器;圖4402、404、406、408、412、414、416步驟方塊;圖5502、504、506、508、512、514、516步驟方塊;圖6624比較器;626舍入溢位;644參考指數(shù)(SP=,24,;DP=,53,);646前導(dǎo)零的數(shù)量的編碼計(jì)數(shù);648減法器;652正規(guī)化移位器;654增量器;656多任務(wù)器;686反向器;694、696多任務(wù)器;圖7702、704、706、708步驟方塊。具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉一較佳實(shí)施例,并配合所附各圖,作詳細(xì)說(shuō)明如下。此處敘述的低延遲浮點(diǎn)硬件設(shè)計(jì)的實(shí)施例不需要加入貧于利用且特殊功能電路部件。組成電路組件被分離成多個(gè)計(jì)算種類所需的最小群組,藉此最小化每一計(jì)算的整體電路延遲。為了提供ROUND指令所必要的操作而不需要增加特殊目的硬件,這些操作被調(diào)度且連續(xù)地被分配至一適當(dāng)?shù)碾娐啡航M。其次必要的是,決定此兩必要操作(在此實(shí)施例中是關(guān)于微指令,稱為XR0UND1與XR0UND2)是否將被調(diào)度且以鎖定方式而緊接于另一者而立刻被分配,或者決定此兩必要操作是否被視為獨(dú)立的微指令,其必須是連續(xù)的但在時(shí)間或時(shí)鐘周期上可能具有不定(indeterminate)的間隔。圖1的微處理器100提供一種無(wú)序(out-of-order)微指令分配結(jié)構(gòu),其企圖藉由極致利用有效的計(jì)算電路來(lái)最小化每指令周期數(shù)的平均以及所引起的軟件延遲。本發(fā)明已判斷出特定情況分配需求(例如對(duì)于一特定軟件指令,在分配上將兩微指令鎖定在一起)在分配電路上會(huì)需要非期望的復(fù)雜度并導(dǎo)致提供非期望的電路延遲。因此,ROUND指令所需的微指令必須容忍不定的短暫分離。隨著無(wú)序指令分配,特別期望必要操作(XR0UND1及XR0UND2)不需要額外結(jié)構(gòu)狀態(tài)的保護(hù)。在儲(chǔ)存至緩存器的計(jì)算結(jié)果位形式下的某些結(jié)構(gòu)狀態(tài)或者在MXCSR中先前提供的條件碼位已經(jīng)存在了。這些的伴隨服務(wù)者是相依性偵測(cè)與調(diào)度邏輯或電路(例如圖1的緩存器命名表(registeraliastable,RAT)116以及保留站118,以及必要實(shí)體導(dǎo)線連接以完成數(shù)據(jù)記錄與遞送。此外,緩存器檔案(即圖1的緩存器檔案與重排緩沖器(reorderbuffer,ROB)126)提供來(lái)儲(chǔ)存關(guān)于不定時(shí)間間隔的數(shù)據(jù)。由XR0UND1微指令至XR0UND2微指令的聯(lián)系而所需要的任何額外結(jié)構(gòu)狀態(tài),會(huì)使得有意義的相依性檢測(cè)、調(diào)度、與遞送邏輯及電路的增加成為必要的,然而,不期望在只有一個(gè)軟件指令類型的特定情況基礎(chǔ)上提供這些能力。因此,此處所敘述的實(shí)施例是采取新的方式來(lái)實(shí)現(xiàn)ROUND指令所須的操作或微指令,其不需要額外的架構(gòu)狀態(tài)來(lái)將數(shù)據(jù)由第一操作轉(zhuǎn)移或傳遞至第二操作。這有利于低延遲且高時(shí)鐘頻率浮點(diǎn)執(zhí)行硬件的設(shè)計(jì)。參閱圖1,其表示微處理器100的方塊圖。微處理器100包括指令高速緩存102,其快取微處理器100的指令集結(jié)構(gòu)的程序指令。在一實(shí)施例中,指令集包括已知的數(shù)據(jù)流SIMD延伸(StreamingSIMDExtensions,SSE)指令集的指令,其包括上述的ROUND指令134。指令高速緩存102提供指令給指令轉(zhuǎn)譯器112,其將程序指令(已知為宏指令)轉(zhuǎn)譯為組成指令(constituentinstruction)(已知為微指令或微操作),以由微處理器100的執(zhí)行單元122來(lái)執(zhí)行。根據(jù)一實(shí)施例,指令轉(zhuǎn)譯器112將ROUND微指令轉(zhuǎn)譯成兩個(gè)微指令132,命名為XR0UND1微指令及XR0UND2微指令,如同依據(jù)圖4的方塊402及404所述。指令轉(zhuǎn)譯器112提供轉(zhuǎn)譯后的微指令至緩存器命名表(registeraliastable,RAT)116,其產(chǎn)生指令相依性并維持其列表,如同依據(jù)圖4的方塊406所述。微處理器100也包括與執(zhí)行單元112連接的多個(gè)保留站118,用以守住等待被分配至執(zhí)行單元122的微指令,例如XR0UND1微指令以及XR0UND2微指令,如同依據(jù)圖4的方塊408及414所述。RAT116按程序順序來(lái)接收微指令,且可脫離受到相依性限制的程序順序來(lái)將其分配至保留站118。引退單元(retireunit)124按程序順序來(lái)引退指令。程序順序是由緩存器檔案與重排緩沖器(reorderbuffer,ROB)126來(lái)維持。緩存器檔案與ROB126耦接RAT116、保留站118、執(zhí)行單元122、以及引退單元124。緩存器檔案126包括結(jié)構(gòu)緩存器檔案與非結(jié)構(gòu)緩存器檔案,以儲(chǔ)存中間微指令結(jié)果。執(zhí)行單元122包括浮點(diǎn)加法器單元104。浮點(diǎn)加法器單元104包括執(zhí)行XR0UND1微指令的近程路徑以及執(zhí)行XR0UND2微指令的遠(yuǎn)程路徑,如同依據(jù)圖4的方塊412及416所述。執(zhí)行單元122也包括用來(lái)傳遞指令結(jié)果至另一者的遞送路徑。接著,特定數(shù)學(xué)結(jié)果種類被考慮來(lái)證明實(shí)施例的特征與功能。SSE單精度(singleprecision,SP)與雙精確度(doubleprecision,DP)浮點(diǎn)數(shù)格式定義了有限的指數(shù)數(shù)值組。在此兩格式中,具有單一符號(hào)位。在SP格式中,指數(shù)為8位(范圍由-126至+127),且有效位數(shù)為23位,而在DP格式中,指數(shù)為11位(范圍由-1022至+1023),且有效位數(shù)為52位。當(dāng)浮點(diǎn)輸入數(shù)值處于正規(guī)化格式時(shí),此兩格式也指明一隱含有效位數(shù)。換句話說(shuō),在正規(guī)化格式中,SP格式將一隱含的第24位指定給二進(jìn)制點(diǎn)的左側(cè),其具有數(shù)值“1”,且DP格式將一隱含的第53位位指定給二進(jìn)制點(diǎn)的左側(cè),其具有數(shù)值“1”。此輸入數(shù)格式引起了兩個(gè)考慮ο第一個(gè)考慮是輸入指數(shù)字段能指定一數(shù)值,使得輸入有效位數(shù)的所有位為整數(shù)字符,即沒(méi)有分?jǐn)?shù)位存在于有效位數(shù)中。換句話說(shuō),例如,在SP情況下,假使指數(shù)數(shù)值為238或更大(即根據(jù)一實(shí)施例而其考慮到一參考指數(shù)數(shù)值,指數(shù)數(shù)值表示2~23或更大),接著,成為一整數(shù)數(shù)值的轉(zhuǎn)換將不會(huì)產(chǎn)生分?jǐn)?shù)位給舍入點(diǎn)的右側(cè)。我們有幫助地將此情況稱為ROUND指令的“ROUND溢位”情況。在ROUND溢位情況中,對(duì)于指令而言,輸入與輸出數(shù)值之間不存在差異。在此情況下,輸入數(shù)值已由具有浮點(diǎn)格式的整數(shù)來(lái)表示,且不需要舍入來(lái)產(chǎn)生正確的結(jié)果數(shù)值。第二個(gè)考慮是隱含有效位數(shù)字符在暫時(shí)分離第一(轉(zhuǎn)換至整數(shù))與第二操作(轉(zhuǎn)換至浮點(diǎn))的設(shè)計(jì)下,可能引發(fā)額外結(jié)構(gòu)狀態(tài)的需要,此于后文解釋說(shuō)明。在ROUND溢位情況下,由于最后結(jié)果已知,因此刪除至變?yōu)楦↑c(diǎn)微指令的隨后轉(zhuǎn)換是有可能的,但是在指令完成和可能的數(shù)據(jù)傳遞至其它指令的期間,這會(huì)引起復(fù)雜度。假使在分配之后XR0UND2微指令有條件地刪除,有條件地自XROUND1或XR0UND2微指令傳遞數(shù)據(jù)將會(huì)是必須的,且根據(jù)相依性指令是否已經(jīng)被調(diào)度或分配而可能具有或不具有效能優(yōu)點(diǎn)。這保證的復(fù)雜度變?yōu)轱@著。雖然此處所述的實(shí)施例是在XR0UND1微指令期間檢測(cè)ROUND溢位情況,但這些實(shí)施例可發(fā)布與執(zhí)行XR0UND2微指令。由于這減少了在數(shù)據(jù)傳遞與指令完成上的復(fù)雜度,上述操作是有益的。如下所述,當(dāng)浮點(diǎn)加法器單元104偵測(cè)到ROUND溢位情況時(shí),其將信息由XR0UND1微指令傳遞至XR0UND2微指令。SP與DP輸入數(shù)可以是非常大的數(shù)值。當(dāng)轉(zhuǎn)換至整數(shù)時(shí),其二進(jìn)制表示的尺寸可以輕易地超過(guò)其輸入尺寸(SP為32位,而DP為64位)。這引起了對(duì)于額外且特例的極端尺寸儲(chǔ)存緩存器以及額外結(jié)果總線導(dǎo)線的特別不期望的需求。因?yàn)檫@個(gè)理由,在ROUND溢位情況下,不期望將輸入浮點(diǎn)數(shù)值轉(zhuǎn)換為傳統(tǒng)二進(jìn)制整數(shù)表示法。浮點(diǎn)加法器單元104偵測(cè)對(duì)于XROUND微指令的輸入指數(shù)的大小(進(jìn)入至ROUND指令的輸入被提供作為輸入至XR0UND1微指令的輸入),如同依據(jù)圖5的判斷方塊504所述,且浮點(diǎn)加法器單元104選擇性地在ROUND溢位情況下不執(zhí)行變?yōu)檎麛?shù)的轉(zhuǎn)換。這只能微處理器100將傳遞輸入符號(hào)、指數(shù)、以及有效位數(shù)(所以都未改變)給XR0UND2微指令,如同依據(jù)圖5的方塊506所述。此外,此范例證明了由XR0UND1微指令至XR0UND2微指令的數(shù)據(jù)傳遞的格式,如同圖2所示。即是,由XR0UND1微指令傳遞至XR0UND2微指令的數(shù)據(jù)的格式包括三個(gè)字段標(biāo)示為圖2的X202、Y204、及Z206。X字段202為單一位,其具有ROUND指令輸入的符號(hào)位的數(shù)值。Y字段204為SP格式的8位字段以及DP格式的11位字段,其持有ROUND指令輸入指數(shù)的有條件增量版本,詳細(xì)如下文所述。Z字段206為SP格式的23位字段以及DP格式的52位字段,其持有未改變ROUND指令輸入有效位數(shù)字符或轉(zhuǎn)換的整數(shù)字符所得知的位,如依據(jù)圖5的方塊514及516所述。規(guī)定符號(hào)、指數(shù)、以及其它可能有條件地包括轉(zhuǎn)換后的整數(shù)數(shù)值的數(shù)據(jù)格式對(duì)于新的ROUND指令實(shí)施而言是新穎的且獨(dú)特的。對(duì)于效能與降低的復(fù)雜度而言,其提供了某些優(yōu)點(diǎn)。值得注意的是,為了有益地使用現(xiàn)行數(shù)據(jù)傳遞總線與緩存器而不需建立特定目的邏輯與伴隨的復(fù)雜度,這些位的總數(shù)量將不會(huì)超過(guò)輸入數(shù)據(jù)格式尺寸(不論是SP或DP格式)。假使輸入數(shù)據(jù)數(shù)為不是ROUND溢位數(shù)值,則必須變?yōu)檎麛?shù)操作的轉(zhuǎn)換,如依據(jù)圖5的方塊508所述。在此情況下,用來(lái)表示結(jié)果整數(shù)所需要的位數(shù)量一般將不會(huì)超過(guò)表示輸入有效位數(shù)(不包括隱含位)所需的位數(shù)量。因此,微處理器100不需避免去使用前述由XROUND1微指令至XR0UND2微指令的數(shù)據(jù)格式。然而,此論點(diǎn)特別的重要在一輸入數(shù)值的情況下,在被XR0UND1微指令轉(zhuǎn)換為整數(shù)的期間,輸入有效位數(shù)可以上舍入(roundup),因此比起不包括隱含位的有效位數(shù)字符,其需要多一個(gè)表示位。換句話說(shuō),輸入數(shù)據(jù)數(shù)值可被上舍入以變成ROUND溢位情況。我們將此情況稱為上舍入至ROUND溢位(RoundUpToROUNDOverflow,RUTR0)情況。在RUTRO情況下,指出一額外位是XR0UND1微指令所產(chǎn)生的整數(shù)的必要部分變?yōu)楸匾?,且?dāng)其由整數(shù)轉(zhuǎn)換為浮點(diǎn)表示時(shí),必須被XR0UND2微指令所考慮。沒(méi)有不明確的結(jié)構(gòu)狀態(tài)或先前技術(shù)存在,以保護(hù)此額外位數(shù)值,尤其是在先前所述由XR0UND1微指令傳遞至XR0UND2微指令的形式下,這承接了前述的優(yōu)點(diǎn)。因此,本案發(fā)明人發(fā)明一新穎的技術(shù),連同前述的數(shù)據(jù)格式,用來(lái)將RUTRO情況(依據(jù)圖5的方塊512所偵測(cè)到)由XR0UND1微指令傳遞至XR0UND2微指令。關(guān)于正(positive)的XR0UND1數(shù)值輸入(例如符號(hào)位為0),浮點(diǎn)加法器單元104偵測(cè)到適當(dāng)?shù)倪吔缰笖?shù)數(shù)值輸入(SP格式時(shí)為22,DP格式時(shí)為51),且當(dāng)其偵測(cè)到RUTRO情況時(shí)有條件地增加該數(shù)值。此有條件地增加的指數(shù)數(shù)值藉由使用前述數(shù)據(jù)格式而由XROUND1微指令傳送至XR0UND2微指令,如同依據(jù)圖5的方塊514所述。再有條件增加的指數(shù)數(shù)值之外,微處理器100將某轉(zhuǎn)換的整數(shù)字符由XR0UND1微指令傳送至XR0UND2微指令,如同依據(jù)圖5的方塊514所述。值得注意的是,這些傳送的整數(shù)字符的位數(shù)值稍后將在XR0UND2微指令執(zhí)行期間促進(jìn)的期望結(jié)果產(chǎn)生,并轉(zhuǎn)換為浮點(diǎn)。這些傳送的整數(shù)字符的數(shù)值將會(huì)是在RUTRO情況下最終ROUND指令有效位數(shù)字符所需要的數(shù)值。在一實(shí)施例中,在符號(hào)轉(zhuǎn)換至整數(shù)操作的期間,不需使用特定的規(guī)定來(lái)最佳化地產(chǎn)生此數(shù)值。在使用最有利的此方式來(lái)處理具有正符號(hào)的輸入數(shù)值的情況下,藉由依據(jù)XR0UND1輸入符號(hào)位來(lái)適當(dāng)?shù)貍蓽y(cè)整數(shù)有效值的額外位的極性,可簡(jiǎn)易地偵測(cè)RUTRO情況。圖3A是表示圖1中執(zhí)行XR0UND1微指令的浮點(diǎn)加法器單元104的部分電路。在一實(shí)施例中,浮點(diǎn)加法器單元104包括使用在高速浮點(diǎn)加法的近程與遠(yuǎn)程。圖3A所表示的部分是關(guān)于遠(yuǎn)程的,且用來(lái)執(zhí)行XR0UND1微指令。圖6表示的部分是關(guān)于近程的,且用來(lái)執(zhí)行XR0UND2微指令,如以下所討論。反向器(NOT)386、多任務(wù)器(MUX)388、移位器/延伸器384、增量器302、以及舍入邏輯單元304—起操作由XR0UND1浮點(diǎn)輸入來(lái)產(chǎn)生舍入2補(bǔ)碼整數(shù)數(shù)值。在正輸入數(shù)值的情況下,移位器/延伸器384接收包括隱含整數(shù)字符的輸入有效位數(shù),且接著零延伸(zero-extend)。在負(fù)(negative)輸入數(shù)值的情況下,移位器/延伸器384接收包括補(bǔ)碼的隱含整數(shù)字符的輸入有效位數(shù),且接著符號(hào)位延伸(sign-extend)。移位器/延伸器384根據(jù)輸入指數(shù)來(lái)移位輸入,以導(dǎo)致輸出的最小有效整數(shù)字符被提供至增量器302的最小有效位輸入。因此,假使輸入為正時(shí),移位器/延伸器384輸出向右調(diào)正零延伸數(shù)值;假使輸入為負(fù)時(shí),移位器/延伸器384輸出向右調(diào)正符號(hào)位延伸1補(bǔ)碼數(shù)值(在依實(shí)施例中,增量器302為具有進(jìn)位輸入的64位2輸入操作數(shù)加法器(64-bit2-inputoperandadder);只有較低的24位被使用在SP情況下,且只有較低的53位被使用在DP情況下;在XR0UND1微指令的情況下,第二輸入操作數(shù)為零)。移位器/延伸器384也提供分?jǐn)?shù)位給舍入邏輯單元304。圖3B的范例是說(shuō)明一SP輸入的RUTRO情況,盡管應(yīng)該了解浮點(diǎn)加法器單元104能處理DP輸入的RUTRO情況。在圖3B的范例中,浮點(diǎn)加法器單元104接收23位輸入,其有效位數(shù)字符被指定為S22至S0。在圖3B的范例中,指數(shù)數(shù)值為2~22(即指數(shù)數(shù)值表示2~22,根據(jù)一實(shí)施例,其考慮一參考指數(shù)數(shù)值),因此,移位器/延伸器384將輸入移位,使得Sl位被提供至24位增量器302的最小有效位輸入(輸入位0),而S22位被提供至增量器302的輸入位21。換句話說(shuō),在此范例中,移位輸入數(shù)值的二進(jìn)制點(diǎn)在S1與SO位之間。增量器302的輸入位22接收隱含整數(shù)字符(數(shù)值“1”),且其輸入位23接收數(shù)值0。SO位被提供至舍入邏輯單元304,其根據(jù)舍入控制306的數(shù)值來(lái)產(chǎn)生舍入位數(shù)值、SO位、以及符號(hào)位。在一實(shí)施例中,舍入邏輯單元304執(zhí)行注入舍入(injectionrounding),且有條件地執(zhí)行與一負(fù)數(shù)的2補(bǔ)碼產(chǎn)生相關(guān)聯(lián)的增量,即舍入邏輯單元304考慮被提供至增量器302的1補(bǔ)碼數(shù)值是否需要被增量以代替任何舍入考慮。舍入邏輯單元304的舍入位輸出被提供至增量器302以作為進(jìn)位位。整數(shù)有效值的額外位是增量器302的輸出位23,在一范例中其將為“1”。特別是,在SP情況下,假使符號(hào)為正,指數(shù)數(shù)值為22,排除隱含整數(shù)字符的有效位數(shù)數(shù)值為0x7FFFFF,且舍入控制數(shù)值導(dǎo)致上舍入,接著出現(xiàn)RUTRO情況,在此情況下,比較器316的輸出將為真,且增量器302的輸出將為0X800000(即位23為“1”)。如上所述且由圖3B所示,根據(jù)偵測(cè)RUTRO情況,為了執(zhí)行XR0UND1微指令,浮點(diǎn)加法器單元104將增量指數(shù)數(shù)值(在SP情況下由22增至23)。此外,由于在增量的指數(shù)數(shù)值之前該輸入不是ROUND溢位情況,浮點(diǎn)加法器單元104將把轉(zhuǎn)換整數(shù)字符(即增量器302的所有位但除了最大有效整數(shù)字符以外,其在SP情況下為輸出位0至22)放置在XR0UND1結(jié)果數(shù)值的Z字段206。在RUTRO情況下,所有的轉(zhuǎn)換整數(shù)字符將為零。如同ROUND溢位情況,XR0UND2微指令將有利地偵測(cè)在RUTRO情況下的XR0UND1結(jié)果數(shù)值(例如,在SP情況下,Y字段204數(shù)值為23),且XR0UND2微指令將簡(jiǎn)單地傳送其輸入數(shù)值以作為將成為ROUND指令的結(jié)果的輸出數(shù)值,而輸出數(shù)值為正確的結(jié)果。換句話說(shuō),在ROUND指令的結(jié)果下有效值的額外位將由浮點(diǎn)格式所固有的“1”數(shù)值隱含整數(shù)字符所提供。有利于時(shí)序緣故,如圖3A及圖3B所示,RUTRO邊界指數(shù)輸入數(shù)值(RUTR0boundaryexponentinputvalue)的偵測(cè)可由立即由比較器316來(lái)執(zhí)行,換句話說(shuō),與移位器/延伸器384以及增量器302的操作并行。此外,更有利于時(shí)序緣故,雖然異或門(XOR)308和與門(AND)322隨著比較器316和增量器302而相繼執(zhí)行,但于他們每一個(gè)只有2位操作,因此是操作快速的。如圖3B所示,XOR308接收符號(hào)位(SB)以及接收由增量器302對(duì)輸入所執(zhí)行的舍入至整數(shù)操作結(jié)果的整數(shù)有效值的額外位。因此,假使符號(hào)位為0(正輸入數(shù)值)且結(jié)果的整數(shù)有效值的額外位為1且假使輸入指數(shù)數(shù)值為輸入浮點(diǎn)格式的邊界指數(shù)數(shù)值,則偵測(cè)到RUTRO情況。正輸入數(shù)值可上舍入至ROUND溢位(RUTRO),而負(fù)數(shù)值可下舍入至ROUND溢位(RoundDownToRoundOverflow,RDTR0),即朝向負(fù)無(wú)限。RDTRO情況需要不同于先前所述正數(shù)值RUTRO技術(shù)的技術(shù)。整數(shù)有效值的額外位(有關(guān)于符號(hào)位)的極性不足以指示RDTR0。換句話說(shuō),由于符號(hào)位與整數(shù)有效值的額外位都為“1”,因此圖3A的XOR308將不會(huì)產(chǎn)生數(shù)值“1”。這是因?yàn)榈谝粋€(gè)負(fù)值(即最大負(fù)值表示舍入整數(shù))或邊界ROUND溢位數(shù)值(即在SP情況下,具有符號(hào)位=“1”、指數(shù)=22、有效位數(shù)=0x7FFFFF字段的輸入數(shù)值,其產(chǎn)生具有符號(hào)位=“1”、Y字段204數(shù)值=22、增量輸出=0x800000的輸出數(shù)值)不會(huì)引起最大有效轉(zhuǎn)換整數(shù)字符的極性改變(即在最大有效四位字中的最大有效位為“1”且因此為符號(hào)位),且無(wú)法使用前述XOR308偵測(cè)架構(gòu)來(lái)偵測(cè)。因此,對(duì)于RDTRO的情況,浮點(diǎn)加法器單元104不會(huì)增量被偵測(cè)到的邊界數(shù)值。為了應(yīng)付此情況或具有負(fù)輸入數(shù)值的其它情況,XR0UND2微指令(其轉(zhuǎn)換至浮點(diǎn))將作為最大有效位的輸入符號(hào)位數(shù)值(即X字段202的數(shù)值)連結(jié)至輸入轉(zhuǎn)換整數(shù)字符,如圖6所示。這提供了來(lái)自符號(hào)(正或負(fù))2補(bǔ)碼整數(shù)的正確轉(zhuǎn)換給表示位數(shù)值的全部范圍。連同前述正RUTRO的技術(shù),舍入至ROUND溢位的正及負(fù)數(shù)值也正確地計(jì)算出。使用SP情況作為一范例,輸入至XR0UND1微指令且將引起RDTRO情況的輸入數(shù)值為負(fù)符號(hào)位(即數(shù)值“1”)、22的指數(shù)數(shù)值、以及連同一舍入控制數(shù)值的23位有位數(shù)0x7FFFFF,其中,舍入控制數(shù)值導(dǎo)致對(duì)24位增量器302的進(jìn)位,以藉由2補(bǔ)碼正朝負(fù)無(wú)限舍入的效力而變?yōu)閿?shù)值“0”。因此,隨著適當(dāng)?shù)纳崛肟刂茢?shù)值,增量器302的輸出為0x800000,其具有數(shù)值“1”的整數(shù)有效值的額外位。此0x800000的真24位轉(zhuǎn)換整數(shù)數(shù)值無(wú)法表示在結(jié)果的23位Z字段206內(nèi)。因此,23位0x00000數(shù)值被放置在XR0UND1微指令結(jié)果的23位Z字段206內(nèi),且必要的整數(shù)有效值的額外位以X字段202的數(shù)值“1”而被傳送至XR0UND2微指令。注意到,0x800000數(shù)值指示最大的負(fù)2補(bǔ)碼整數(shù),其以24位來(lái)表示。因此,當(dāng)XR0UND2微指令將0x800000整數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)值時(shí),產(chǎn)生了正確結(jié)果。為了RUTRO與RDTRO情況,這些特定X字段202、Y字段204、Z字段206數(shù)值到達(dá)XR0UND2微指令的傳送,是使用此述數(shù)據(jù)格式以將信息由XR0UND1微指令傳遞至XR0UND2微指令的附加優(yōu)點(diǎn)。透過(guò)被提供作為XR0UND1與XR0UND2微指令的兩必要操作的任何暫時(shí)分離,此數(shù)據(jù)格式保持了額外整數(shù)字符數(shù)值的必要有效值。應(yīng)可了解,在被傳送的Y字段204數(shù)值小于必要值以指示ROUND溢位情況的正數(shù)值情況(例如符號(hào)位為“0”)下,根據(jù)圖6所示的部分浮點(diǎn)加法器單元104,而由XR0UND2微指令所執(zhí)行浮點(diǎn)運(yùn)算的轉(zhuǎn)換將說(shuō)明被傳送的X字段202位數(shù)值如同不具備有效值(由于其為“0”)。如圖7的流程圖所示,關(guān)于XR0UND2微指令,首先,檢查由XROUND1微指令的Y字段204數(shù)值,在一實(shí)施例中,藉由再次使用用來(lái)執(zhí)行關(guān)于XR0UND1微指令的檢查的相同電路。假使Y字段204的數(shù)值不表示ROUND溢位情況,浮點(diǎn)加法器單元104使用在Z字段206內(nèi)且由XR0UND1微指令先前提供的轉(zhuǎn)換整數(shù)字符,并藉由將X字段202數(shù)值連接輸入轉(zhuǎn)換整數(shù)字符的最大有效位,來(lái)選擇性地執(zhí)行成為浮點(diǎn)運(yùn)算的轉(zhuǎn)換。假使檢查過(guò)的Y字段204沒(méi)有表示ROUND溢位情況,如前所述,浮點(diǎn)加法器單元104選擇性地不執(zhí)行成為浮點(diǎn)運(yùn)算的轉(zhuǎn)換。在此情況下,X、Y、Z字段數(shù)值被傳送且沒(méi)有改變,以作為XR0UND2微指令的結(jié)果并作為ROUND指令整體的正確結(jié)果。根據(jù)于此,可清楚了解伴隨較小的復(fù)雜度而有益地提供正確結(jié)^ο圖8以圖示方式來(lái)表示執(zhí)行SSE4.1R0UND指令的整體程序,詳細(xì)如下文所述。雖然已說(shuō)明為了接收XR0UND1微指令的中間結(jié)果而使得在XR0UND1微指令之后XR0UND2微指令開(kāi)始執(zhí)行的實(shí)施例,然而可考慮微指令預(yù)料ROUND溢位情況將存在并使用ROUND指令輸入操作數(shù)數(shù)值(其是與在ROUND溢位情況下XR0UND1微指令中間結(jié)果相等的數(shù)值)來(lái)推測(cè)地執(zhí)行XR0UND2微指令的實(shí)施例;假使推測(cè)是不正確的,XR0UND2微指令藉由使用XR0UND1微指令中間結(jié)果來(lái)重新執(zhí)行。這使能XR0UND2微指令在XR0UND1微指令之前或與同時(shí)于XR0UND2微指令而實(shí)際開(kāi)始其本身的執(zhí)行。此外,雖然已敘述了在X與Z字段數(shù)值的中間結(jié)果一起表示2補(bǔ)碼整數(shù)數(shù)值的實(shí)施例,但也可考慮其表示無(wú)符號(hào)整數(shù)數(shù)值或符號(hào)大小(sign-magnitude)整數(shù)數(shù)值或1補(bǔ)碼整數(shù)數(shù)值的實(shí)施例。舉例來(lái)說(shuō),無(wú)符號(hào)或符號(hào)大小整數(shù)數(shù)值表示法可藉由偵測(cè)與增量指數(shù)(關(guān)于在2補(bǔ)碼實(shí)施例中的RUTRO情況)來(lái)提供RDTRO情況所需的獨(dú)特的溢位邊界數(shù)值(例如單精度,28位=0x800000)。此外,關(guān)于1補(bǔ)碼表示法,XROUND1微指令可能在對(duì)1補(bǔ)碼的轉(zhuǎn)換之前來(lái)舍入輸入數(shù)值、偵測(cè)引起導(dǎo)致指數(shù)增量的舍入溢位邊界數(shù)值、以及只有假使沒(méi)有引起指數(shù)增量時(shí)對(duì)1補(bǔ)碼的轉(zhuǎn)換;以及,XR0UND2微指令可能偵測(cè)溢位指數(shù)狀態(tài)并引起輸入被傳送至輸出,以及偵測(cè)較少的溢位指數(shù)狀態(tài)并引發(fā)自1補(bǔ)碼表示法的轉(zhuǎn)換,接著執(zhí)行正規(guī)化與最后指數(shù)計(jì)算。在2補(bǔ)碼的實(shí)施例中,當(dāng)正傳送期望的最終舍入整數(shù)數(shù)值(對(duì)于RUTRO情況,于其中整數(shù)的最大有效位被隱含,但在RDTRO情況下不會(huì)被提供)時(shí),關(guān)于1補(bǔ)碼表示法的這些規(guī)定會(huì)適當(dāng)?shù)貐^(qū)別出具有適當(dāng)X位數(shù)值以及是當(dāng)Y字段數(shù)值的正與負(fù)舍入溢位。這些規(guī)定提供了在單一精確度情況下的數(shù)值以及其適當(dāng)且獨(dú)特的1補(bǔ)碼表示法,例如1)positive(RUTROboundary-1):X=0,Y=2e22,Z=0x7FFFFF(23bits)(由于最大有效位被提供為X,因此1補(bǔ)碼整數(shù)表示為0x7FFFFF,如同在2補(bǔ)碼的實(shí)施例中)2)negative(RUTROboundary-1):X=1,Y=2e22,Z=0x000000(23bits)(由于最大有效位被提供為X,因此1補(bǔ)碼整數(shù)表示為0x800000,如同在2補(bǔ)碼的實(shí)施例中)3)positivezero:X=0,Y=0,Z=0x000000(23bits)(由于最大有效位被提供為X,因此1補(bǔ)碼整數(shù)表示為0x000000,如同在2補(bǔ)碼的實(shí)施例中)4)negativezero:X=1,Y=0,Z=0x7FFFFF(23bits)(由于最大有效位被提供為X,因此1補(bǔ)碼整數(shù)表示為OxFFFFFF,如同在2補(bǔ)碼的實(shí)施例中)此外,雖然敘述ROUND指令結(jié)果的尺寸等于其輸入操作數(shù)的尺寸的實(shí)施例,但是也可考慮結(jié)果尺寸不同于輸入尺寸的實(shí)施例。舉例來(lái)說(shuō),XROUND微指令可被修改來(lái)移位輸入操作數(shù)以將其校準(zhǔn)至一相異的舍入點(diǎn),且XR0UND2微指令可被修改來(lái)將結(jié)果正規(guī)化與格式化至新的期望尺寸,可能包括相異指數(shù)結(jié)果的計(jì)算。本發(fā)明的不同實(shí)施例已于本文敘述,但本領(lǐng)域具有通常知識(shí)者應(yīng)能了解這些實(shí)施例僅作為范例,而非限定于此。本領(lǐng)域具有通常知識(shí)者可在不脫離本發(fā)明的精神的情況下,對(duì)形式與細(xì)節(jié)上做不同的變化。例如,軟件可實(shí)現(xiàn)本發(fā)明實(shí)施例所述的裝置與方法的功能、組建(fabrication)、模塊化(modeling)、模擬、描述(description)、和/或測(cè)試??赏高^(guò)一般程序語(yǔ)言(C、C++)、硬件描述語(yǔ)言(HardwareDescriptionLanguages,HDL)(包括VerilogHDL、VHDL等等)、或其它可利用的程序語(yǔ)言來(lái)完成。此軟件可配置在任何已知的計(jì)算機(jī)可使用媒介,例如半導(dǎo)體、磁盤、或光盤(例如CD-R0M、DVD_R0M等等)。本發(fā)明所述的裝置與方法實(shí)施例可被包括于半導(dǎo)體知識(shí)產(chǎn)權(quán)核心,例如微處理器核心(以HDL來(lái)實(shí)現(xiàn)),并轉(zhuǎn)換成集成電路產(chǎn)品的硬件。此外,本發(fā)明所述的裝置與方法可實(shí)現(xiàn)為硬件與軟件的結(jié)合。因此,本發(fā)明不應(yīng)局限于所揭露的實(shí)施例,而是依后附的申請(qǐng)專利范圍與等同實(shí)施所界定。特別是,本發(fā)明可實(shí)施在使用于一般用途計(jì)算機(jī)中的微處理器裝置內(nèi)。最后,本發(fā)明雖以較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明的范圍,任何所屬
技術(shù)領(lǐng)域
中具有通常知識(shí)者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許的更動(dòng)與潤(rùn)飾,因此本發(fā)明的保護(hù)范圍當(dāng)視后附的權(quán)利要求書范圍所界定者為準(zhǔn)。權(quán)利要求一種微處理器,用以執(zhí)行一指令,該指令指定具有預(yù)設(shè)尺寸的一浮點(diǎn)輸入操作數(shù),該指令指示該微處理器使用一舍入模式來(lái)將該浮點(diǎn)輸入操作數(shù)舍入至一整數(shù)數(shù)值且將該整數(shù)數(shù)值返回為具有與該浮點(diǎn)輸入操作數(shù)相同的該預(yù)設(shè)尺寸的一浮點(diǎn)結(jié)果,該微處理器包括一指令轉(zhuǎn)譯器,將該指令轉(zhuǎn)譯為一第一微指令與一第二微指令;以及一執(zhí)行單元,執(zhí)行該第一微指令與該第二微指令;其中,該第一微指令接收該浮點(diǎn)輸入操作數(shù)以作為輸入操作數(shù),且自該浮點(diǎn)輸入操作數(shù)來(lái)產(chǎn)生一中間結(jié)果;其中,該第二微指令接收該第一微指令的該中間結(jié)果來(lái)作為輸入操作數(shù),且自該中間結(jié)果來(lái)產(chǎn)生該指令的該浮點(diǎn)結(jié)果;以及其中,該中間結(jié)果具有與該浮點(diǎn)輸入操作數(shù)相同的該預(yù)設(shè)尺寸。2.如權(quán)利要求1所述的微處理器,其中,該微處理器用來(lái)執(zhí)行該第一微指令與該第二微指令,使得該第一微指令與該第二微指令執(zhí)行的開(kāi)始在時(shí)間上具有不定的分離。3.如權(quán)利要求2所述的微處理器,其中,該第二微指令在該第一微指令之后開(kāi)始執(zhí)行,不論該第一微指令的該中間結(jié)果,該第二微指令總被執(zhí)行。4.如權(quán)利要求1所述的微處理器,其中,該浮點(diǎn)輸入操作數(shù)具有一單一符號(hào)位、一M-位指數(shù)、以及N-位有效位數(shù),該中間結(jié)果包括一第一單一位字段、一第二M-位字段、以及一第三N-位字段,且該執(zhí)行單元用來(lái)執(zhí)行該第一微指令以產(chǎn)生該中間結(jié)果,使得(1)當(dāng)該指數(shù)表示2~N或更大時(shí),該中間結(jié)果為未改變的該浮點(diǎn)輸入操作數(shù);以及(2)當(dāng)該指數(shù)表示2~(N-I),該有效位數(shù)都是二進(jìn)制的1,且該舍入模式引發(fā)上舍入時(shí),該第一字段為該浮點(diǎn)輸入操作數(shù)的該符號(hào)位,該第二字段等于N,且該第三字段都是二進(jìn)制的0。5.如權(quán)利要求4所述的微處理器,其中,該執(zhí)行單元執(zhí)行該第二微指令以產(chǎn)生該浮點(diǎn)結(jié)果,使得當(dāng)該第二字段表示2~N或更大時(shí),該浮點(diǎn)結(jié)果為未改變的該中間結(jié)果。6.如權(quán)利要求5所述的微處理器,其中,該浮點(diǎn)結(jié)果具有一單一符號(hào)位、一M-位指數(shù)、以及一N-位有效位數(shù),該執(zhí)行單元更執(zhí)行該第二微指令以產(chǎn)生該浮點(diǎn)結(jié)果,使得當(dāng)該第二字段表示小于2~N時(shí),該執(zhí)行單元考慮將該第一字段的位作為最大有效位來(lái)添加至該第三字段以成為一整數(shù)數(shù)值,且該執(zhí)行單元將該整數(shù)數(shù)值轉(zhuǎn)換為該浮點(diǎn)結(jié)果。7.如權(quán)利要求6所述的微處理器,其中,當(dāng)該第二字段表示小于2~N時(shí),該浮點(diǎn)結(jié)果的該符號(hào)位為該第一字段的位。8.如權(quán)利要求6所述的微處理器,其中,該執(zhí)行單元執(zhí)行該第一微指令以產(chǎn)生該中間結(jié)果,使得當(dāng)該情況⑴與⑵都不為真時(shí)該第一字段的位為該浮點(diǎn)輸入操作數(shù)的該符號(hào)位;以及該第三字段為轉(zhuǎn)換自該浮點(diǎn)輸入操作數(shù)的N-位舍入2補(bǔ)碼整數(shù)數(shù)值。9.如權(quán)利要求8所述的微處理器,該執(zhí)行單元執(zhí)行該第一微指令以產(chǎn)生該中間結(jié)果,使得當(dāng)該情況⑴與⑵都不為真時(shí)該第二字段為未改變的該浮點(diǎn)輸入操作數(shù)的該指數(shù)。10.如權(quán)利要求1所述的微處理器,其中,該浮點(diǎn)輸入操作數(shù)具有一單一符號(hào)位、一M-位指數(shù)、以及N-位有效位數(shù),該中間結(jié)果包括一第一單一位字段、一第二M-位字段、以及一第三N-位字段;其中,該執(zhí)行單元用來(lái)執(zhí)行該第一微指令以產(chǎn)生該中間結(jié)果,使得當(dāng)該指數(shù)表示2"(N-I),該有效位數(shù)都是二進(jìn)制的1,該符號(hào)位為負(fù),且該舍入模式指示在負(fù)無(wú)限方向的舍入時(shí)該第一字段為該浮點(diǎn)輸入操作數(shù)的該符號(hào)位;該第二字段為該浮點(diǎn)輸入操作數(shù)的未改變的該指數(shù);以及該第三字段為轉(zhuǎn)換自該浮點(diǎn)輸入操作數(shù)的N-位舍入2補(bǔ)碼整數(shù)數(shù)值;其中,該浮點(diǎn)結(jié)果具有一單一符號(hào)位、一M-位指數(shù)、以及一N-位有效位數(shù);以及其中,該執(zhí)行單元更執(zhí)行該第二微指令以產(chǎn)生該浮點(diǎn)結(jié)果,使得當(dāng)該第二字段表示2"(N-I)時(shí),該執(zhí)行單元考慮將該第一字段的位作為最大有效位來(lái)添加至該第三字段以成為一整數(shù)數(shù)值,且該執(zhí)行單元將該整數(shù)數(shù)值轉(zhuǎn)換為該浮點(diǎn)結(jié)果。11.一種執(zhí)行指令的方法,由一微處理器所執(zhí)行,該指令指定具有一預(yù)設(shè)尺寸的一浮點(diǎn)輸入操作數(shù),該指令指示該微處理器使用一舍入模式來(lái)將該浮點(diǎn)輸入操作數(shù)舍入至一整數(shù)數(shù)值且將該整數(shù)數(shù)值返回為具有與該浮點(diǎn)輸入操作數(shù)相同的該預(yù)設(shè)尺寸的一浮點(diǎn)結(jié)果,該執(zhí)行指令的方法包括將該指令轉(zhuǎn)譯為一第一微指令與一第二微指令,其中,該轉(zhuǎn)譯步驟由該微處理器的一指令轉(zhuǎn)譯器所執(zhí)行;以及執(zhí)行該第一微指令與該第二微指令,其中,該執(zhí)行步驟由該微處理器的一執(zhí)行單元所執(zhí)行;其中,該第一微指令接收該浮點(diǎn)輸入操作數(shù)以作為輸入操作數(shù),且自該浮點(diǎn)輸入操作數(shù)來(lái)產(chǎn)生一中間結(jié)果;其中,該第二微指令接收該第一微指令的該中間結(jié)果來(lái)作為輸入操作數(shù),且自該中間結(jié)果來(lái)產(chǎn)生該指令的該浮點(diǎn)結(jié)果;以及其中,該中間結(jié)果具有與該浮點(diǎn)輸入操作數(shù)相同的該預(yù)設(shè)尺寸。12.如權(quán)利要求11所述的執(zhí)行指令的方法,其中,執(zhí)行該第一微指令與該第二微指令的該步驟包括執(zhí)行該第一微指令與該第二微指令,使得該第一微指令與該第二微指令執(zhí)行的開(kāi)始在時(shí)間上具有不定的分離。13.如權(quán)利要求12所述的執(zhí)行指令的方法,其中,該第二微指令在該第一微指令之后開(kāi)始執(zhí)行,不論該第一微指令的該中間結(jié)果,該第二微指令總被執(zhí)行。14.如權(quán)利要求11所述的執(zhí)行指令的方法,其中,該浮點(diǎn)輸入操作數(shù)具有一單一符號(hào)位、一M-位指數(shù)、以及N-位有效位數(shù),該中間結(jié)果包括一第一單一位字段、一第二M-位字段、以及一第三N-位字段,且執(zhí)行該第一微處理器的該步驟包括執(zhí)行該第一微指令以產(chǎn)生該中間結(jié)果,使得(1)當(dāng)該指數(shù)表示2~N或更大時(shí),該中間結(jié)果為未改變的該浮點(diǎn)輸入操作數(shù);以及(2)當(dāng)該指數(shù)表示2~(N-I),該有效位數(shù)都是二進(jìn)制的1,且該舍入模式引發(fā)上舍入時(shí),該第一字段為該浮點(diǎn)輸入操作數(shù)的該符號(hào)位,該第二字段等于N,且該第三字段都是二進(jìn)制的0。15.如權(quán)利要求14所述的執(zhí)行指令的方法,其中,執(zhí)行該第二微指令的該步驟包括執(zhí)行該第二微指令以產(chǎn)生該浮點(diǎn)結(jié)果,使得當(dāng)該第二字段表示2~N或更大時(shí),該浮點(diǎn)結(jié)果為未改變的該中間結(jié)果。16.如權(quán)利要求15所述的執(zhí)行指令的方法,其中,該浮點(diǎn)結(jié)果具有一單一符號(hào)位、一M-位指數(shù)、以及一N-位有效位數(shù),且執(zhí)行該第二微指令的該步驟包括執(zhí)行該第二微指令以產(chǎn)生該浮點(diǎn)結(jié)果,使得當(dāng)該第二字段表示小于2~N時(shí),該執(zhí)行單元考慮將該第一字段的位作為最大有效位來(lái)添加至該第三字段以成為一整數(shù)數(shù)值,且該執(zhí)行單元將該整數(shù)數(shù)值轉(zhuǎn)換為該浮點(diǎn)結(jié)果。17.如權(quán)利要求16所述的執(zhí)行指令的方法,其中,當(dāng)該第二字段表示小于2~N時(shí),該浮點(diǎn)結(jié)果的該符號(hào)位為該第一字段的位。18.如權(quán)利要求17所述的執(zhí)行指令的方法,其中,執(zhí)行該第一微指令的該步驟包括執(zhí)行該第一微指令以產(chǎn)生該中間結(jié)果,使得當(dāng)該情況⑴與⑵都不為真時(shí)該第一字段的位為該浮點(diǎn)輸入操作數(shù)的該符號(hào)位;以及該第三字段為轉(zhuǎn)換自該浮點(diǎn)輸入操作數(shù)的N-位舍入2補(bǔ)碼整數(shù)數(shù)值。19.如權(quán)利要求18所述的執(zhí)行指令的方法,執(zhí)行該第一微指令的該步驟更包括執(zhí)行該第一微指令以產(chǎn)生該中間結(jié)果,使得當(dāng)該情況⑴與⑵都不為真時(shí)該第二字段為未改變的該浮點(diǎn)輸入操作數(shù)的該指數(shù)。20.如權(quán)利要求11所述的執(zhí)行指令的方法,其中,該浮點(diǎn)輸入操作數(shù)具有一單一符號(hào)位、一M-位指數(shù)、以及N-位有效位數(shù),該中間結(jié)果包括一第一單一位字段、一第二M-位字段、以及一第三N-位字段;其中,執(zhí)行該第一微指令的該步驟包括執(zhí)行該第一微指令以產(chǎn)生該中間結(jié)果,使得當(dāng)該指數(shù)表示2~(N-I),該有效位數(shù)都是二進(jìn)制的1,該符號(hào)位為負(fù),且該舍入模式指示在負(fù)無(wú)限方向的舍入時(shí)該第一字段為該浮點(diǎn)輸入操作數(shù)的該符號(hào)位;該第二字段為該浮點(diǎn)輸入操作數(shù)的未改變的該指數(shù);以及該第三字段為轉(zhuǎn)換自該浮點(diǎn)輸入操作數(shù)的N-位舍入2補(bǔ)碼整數(shù)數(shù)值;其中,該浮點(diǎn)結(jié)果具有一單一符號(hào)位、一M-位指數(shù)、以及一N-位有效位數(shù);以及其中,執(zhí)行該第二微指令的該步驟包括執(zhí)行該第二微指令以產(chǎn)生該浮點(diǎn)結(jié)果,使得當(dāng)該第二字段表示2~(N-I)時(shí),該執(zhí)行單元考慮將該第一字段的位作為最大有效位來(lái)添加至該第三字段以成為一整數(shù)數(shù)值,且該執(zhí)行單元將該整數(shù)數(shù)值轉(zhuǎn)換為該浮點(diǎn)結(jié)果。全文摘要一種微處理器,用以執(zhí)行一指令,此指令指定具有預(yù)設(shè)尺寸的浮點(diǎn)輸入操作數(shù)且指示微處理器使用舍入模式來(lái)將浮點(diǎn)輸入操作數(shù)舍入至整數(shù)數(shù)值且將整數(shù)數(shù)值返回為具有預(yù)設(shè)尺寸的一浮點(diǎn)結(jié)果。微處理器包括一指令轉(zhuǎn)譯器,用以將指令轉(zhuǎn)譯為第一微指令與第二微指令。微處理器也包括執(zhí)行單元,用以執(zhí)行第一微指令與第二微指令。第一微指令接收浮點(diǎn)輸入操作數(shù)以作為輸入操作數(shù)且自浮點(diǎn)輸入操作數(shù)來(lái)產(chǎn)生中間結(jié)果。第二微指令接收第一微指令的中間結(jié)果來(lái)作為輸入操作數(shù)且自中間結(jié)果來(lái)產(chǎn)生指令的浮點(diǎn)結(jié)果。中間結(jié)果具有與浮點(diǎn)輸入操作數(shù)相同的預(yù)設(shè)尺寸。本發(fā)明還公開(kāi)了一種執(zhí)行指令的方法。文檔編號(hào)G06F9/30GK101930354SQ20101023987公開(kāi)日2010年12月29日申請(qǐng)日期2010年7月26日優(yōu)先權(quán)日2009年7月28日發(fā)明者湯姆·艾爾摩,泰瑞·派克斯申請(qǐng)人:威盛電子股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1