国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      從十進(jìn)制浮點轉(zhuǎn)換到比例二進(jìn)制編碼十進(jìn)制的系統(tǒng)和方法

      文檔序號:7539311閱讀:302來源:國知局
      專利名稱:從十進(jìn)制浮點轉(zhuǎn)換到比例二進(jìn)制編碼十進(jìn)制的系統(tǒng)和方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及十進(jìn)制浮點(decimal floating pointDFP)數(shù),更具體地說涉及從DFP數(shù)轉(zhuǎn)換到比例二進(jìn)制編碼十進(jìn)制(scaled binary codeddecimalSBCD)浮點數(shù)。
      背景技術(shù)
      DFP已在計算器中使用許多年,但是首次正在成為IEEE標(biāo)準(zhǔn)的一部分(754R浮點標(biāo)準(zhǔn))。由IEEE 754R標(biāo)準(zhǔn)定義的DFP格式包括32位(bit)單精度格式,64位雙精度格式,和128位擴展精度格式。這種新標(biāo)準(zhǔn)向計算機設(shè)計人員提供開發(fā)相對于該新標(biāo)準(zhǔn)優(yōu)化的特定運算的手段。在運算數(shù)的標(biāo)準(zhǔn)化之前,不可能開發(fā)加速這些類型的計算的特定運算。對于一些商業(yè)工作量來說,軟件中的DFP運算的模擬能夠支配處理計時。
      隨著新標(biāo)準(zhǔn)的出現(xiàn)和把十進(jìn)制算術(shù)運算用于金融計算的增多,最好是高性能地實現(xiàn)這些運算。

      發(fā)明內(nèi)容
      本發(fā)明的例證實施例包括一種用于從十進(jìn)制浮點(DFP)轉(zhuǎn)換到比例二進(jìn)制編碼十進(jìn)制(SBCD)的系統(tǒng)。所述系統(tǒng)包括接收DFP數(shù)的機構(gòu)。所述系統(tǒng)還包括至少下列之一對DFP數(shù)進(jìn)行系數(shù)展開從而產(chǎn)生SBCD數(shù)的二進(jìn)制編碼十進(jìn)制(BCD)系數(shù)部分的機構(gòu),和對DFP數(shù)執(zhí)行指數(shù)抽取從而產(chǎn)生SBCD數(shù)的指數(shù)部分的機構(gòu)。
      另外的例證實施例包括從DFP轉(zhuǎn)換到SBCD的方法。所述方法包括接收DFP數(shù)。所述方法還包括至少下列之一執(zhí)行對DFP數(shù)的系數(shù)展開從而產(chǎn)生SBCD數(shù)的系數(shù)部分,和執(zhí)行對DFP數(shù)的指數(shù)抽取從而產(chǎn)生SBCD數(shù)的指數(shù)部分。
      其它的例證實施例包括從DFP轉(zhuǎn)換到SBCD的系統(tǒng)。所述系統(tǒng)包括接收DFP數(shù)的機構(gòu)。所述系統(tǒng)還包括執(zhí)行系數(shù)展開的機構(gòu)或執(zhí)行指數(shù)抽取的機構(gòu)。執(zhí)行系數(shù)展開的機構(gòu)從DFP數(shù)產(chǎn)生SBCD數(shù)的BCD系數(shù)部分。執(zhí)行指數(shù)抽取的機構(gòu)從DFP數(shù)產(chǎn)生SBCD數(shù)的指數(shù)部分。執(zhí)行系數(shù)展開的機構(gòu)由雙精度硬件實現(xiàn)。DFP數(shù)是單精度、雙精度或擴展精度。執(zhí)行系數(shù)展開包括確定DFP數(shù)是否是特殊數(shù),如果DFP數(shù)是特殊數(shù),那么設(shè)置條件碼。執(zhí)行指數(shù)抽取包括確定DFP數(shù)是否是特殊數(shù),并設(shè)置SBCD的指數(shù)部分,以指示SBCD數(shù)是特殊數(shù)。
      通過本發(fā)明的技術(shù)實現(xiàn)另外的特征和優(yōu)點。這里詳細(xì)說明了本發(fā)明的其它實施例和方面,所述其它實施例和方面被視為要求保護的發(fā)明的一部分。參考下面的說明和附圖,可更好地理解本發(fā)明的優(yōu)點和特征。


      當(dāng)說明書完結(jié)時,在權(quán)利要求中特別指出并且明確要求保護被視為本發(fā)明的主題。結(jié)合附圖,根據(jù)下面的詳細(xì)說明,本發(fā)明的上述和其它目的、特征和優(yōu)點是明顯的,其中圖1是根據(jù)本發(fā)明的例證實施例,實現(xiàn)系數(shù)從BCD到DPD的壓縮的例證硬件圖;圖2是根據(jù)本發(fā)明的例證實施例的把34BCD數(shù)位系數(shù)轉(zhuǎn)換成四倍精度DFP運算數(shù)的處理的方框圖;圖3是根據(jù)本發(fā)明的例證實施例的把SBCD數(shù)的指數(shù)部分轉(zhuǎn)換成DFP數(shù)的例證硬件圖;圖4是根據(jù)本發(fā)明的例證實施例的實現(xiàn)從DPD到BCD的系數(shù)的展開的例證硬件圖;圖5是根據(jù)本發(fā)明的例證實施例的把四倍精度DFP運算數(shù)轉(zhuǎn)換成34BCD數(shù)位系數(shù)的方框圖;
      圖6是根據(jù)本發(fā)明的例證實施例的實現(xiàn)從DFP數(shù)到SBCD數(shù)的轉(zhuǎn)換的抽取指數(shù)部分的例證硬件圖。
      下面的詳細(xì)說明參考附圖舉例說明本發(fā)明的例證實施例,以及優(yōu)點和特征。
      具體實施例方式
      本發(fā)明的例證實施例包括把DFP數(shù)的系數(shù)轉(zhuǎn)換成SBCD和從SBCD轉(zhuǎn)換到DFP數(shù)的系數(shù)的運算。實施例支持三種不同的DFP格式(單精度-32位,雙精度-64位,和擴展精度128位)。另外,例證實施例設(shè)置允許處理器快速檢測何時源運算數(shù)包含無效的數(shù)據(jù)或者特殊數(shù)(例如無窮大,靜態(tài)非數(shù)字(qNaN)和信令非數(shù)字(sNaN))的條件碼。本發(fā)明的例證實施例還描述了抽取和設(shè)置三種不同DFP格式的DFP數(shù)字的指數(shù)字段的運算。這些運算利用在插入指令和抽取指令之間兼容的數(shù)字格式處理特殊的數(shù)字。設(shè)定條件碼,以便處理器快速檢測特殊數(shù)何時已被處理。
      例證實施例包括從SBCD數(shù)(包括BCD系數(shù)和二進(jìn)制指數(shù))到DFP數(shù)的轉(zhuǎn)換,和從DFP數(shù)到SBCD數(shù)的轉(zhuǎn)換。從SBCD數(shù)到DFP數(shù)的轉(zhuǎn)換包括BCD系數(shù)的壓縮和把SBCD指數(shù)插入到DFP數(shù)中。從DFP數(shù)到SBCD數(shù)的轉(zhuǎn)換包括把DFP系數(shù)展開成BCD系數(shù),和把DFP指數(shù)抽取成SBCD二進(jìn)制指數(shù)。
      下面在表1中表示了SBCD數(shù)的三種不同格式。這里使用的術(shù)語SBCD數(shù)指的是包括用BCD表示的系數(shù)和用二進(jìn)制表示的指數(shù),以及可選的一位符號字段的數(shù)字。
      表1 SBCD數(shù)格式格式每個字段中的位數(shù)符號 指數(shù)系數(shù)單精度 18 28(7數(shù)位)雙精度 110 64(16數(shù)位)擴展精度114 136(34數(shù)位)
      下面在表2中表示了DFP數(shù)的三種不同格式。符號字段(在表2中標(biāo)記為“S”)指示運算數(shù)的符號,組合字段(在表2中標(biāo)記為“C”)包含編碼成五位編碼格式的系數(shù)的高位最高有效數(shù)位(MSD)(upper mostsignificant digit)和兩個最高指數(shù)位,偏移指數(shù)延續(xù)字段(表2中標(biāo)記為“BEC”)包含指數(shù)的除兩個最高有效位之外的所有位,系數(shù)延續(xù)字段(表2中標(biāo)記為“CC”)以密集壓縮十進(jìn)制(densely packed decimaiDPD)格式包含系數(shù)的除MSD之外的所有數(shù)位(digit)。
      表2 DFP數(shù)格式格式每個字段中的位數(shù)SCBECCC單精度 156 20雙精度 158 50擴展精度1512 110如前所述,組合字段包含按照五位編碼格式編碼的系數(shù)的高位MSD和兩個最高有效指數(shù)位。下面,表3表示如在IEEE 754R標(biāo)準(zhǔn)中描述的這種5位編碼,其中d0,d1,d2,d3來自系數(shù)的MSD的BCD編碼,b0,b1是指數(shù)的兩個最高有效位。
      表3 組合字段的編碼條件組合字段編碼MSD=0-7b0,b1,d1,d2,d3MSD=8或9 1,1,b0,b1,d3無窮大 1,1,1,1,0NaN 1,1,1,1,1組合字段被例證實施例用于快速識別特殊的數(shù)字,例如(但不限于)qNaN,sNaN和無窮大值。通過檢查組合字段中的數(shù)位,能夠檢測特殊數(shù)。
      系數(shù)的壓縮(BCD到DFP)壓縮運算主要處理包含系數(shù)數(shù)據(jù)的最高有效數(shù)位(以及指數(shù)數(shù)據(jù)的兩個最高有效位)的組合字段,和包含取決于目標(biāo)DFP格式,壓縮成20、50或110 DPD位的系數(shù)的剩余7、15或33個BCD數(shù)位的系數(shù)延續(xù)字段。壓縮運算獲得BCD系數(shù),并為DFP數(shù)的存儲創(chuàng)建DPD系數(shù),從基于系數(shù)的最高有效BCD數(shù)位的值產(chǎn)生5位組合字段。這里,這也被稱為來自BCD的壓縮(compress from BCDCBCDR)CBCDR運算可被實現(xiàn)成一條計算機指令,所述計算機指令從源運算數(shù)獲得16個BCD系數(shù)數(shù)位,把最右側(cè)的15數(shù)位壓縮成DPD位,并把它們寫入目標(biāo)寄存器的最右側(cè)50位。最高數(shù)位被編碼到組合字段中(假定指數(shù)值為0),并被寫入目標(biāo)寄存器中。符號字段和目標(biāo)寄存器的6-13位(雙精度運算數(shù)的BEC)分別為正和零。如果源寄存器包含無效的BCD數(shù)字碼,那么設(shè)置條件碼1,否則設(shè)置條件碼0。基于有效的十進(jìn)制數(shù)據(jù)設(shè)置條件碼避免了對專用于核實源數(shù)據(jù)的額外指令的需要,并且節(jié)省了典型處理器的大量循環(huán)和指令。
      圖1是根據(jù)本發(fā)明的例證實施例,實現(xiàn)系數(shù)從BCD到DPD的壓縮(即,CBCDR指令)的例證硬件圖。圖1包括作為給有效數(shù)位檢測塊110,BCD-組合字段編碼器108和多個BCD-DPD編碼器106的輸入的一個16數(shù)位BCD系數(shù)102。這里,所述多個BCD-DPD編碼器也被稱為一個DPD-BCD編碼器庫。響應(yīng)確定BCD系數(shù)運算數(shù)102是否是有效BCD數(shù)字,設(shè)置條件碼112。在例證實施例中,如果SBCD系數(shù)102是有效的BCD數(shù),那么條件碼被設(shè)為0,如果BCD系數(shù)102包含無效的BCD數(shù),那么條件碼被設(shè)為1。
      BCD-DPD編碼器106均把三個BCD數(shù)位(12位)的BCD系數(shù)120壓縮成10位的DPD。對SBCD系數(shù)102的除了MSD外的所有數(shù)位應(yīng)用壓縮。對于雙精度數(shù)字,壓縮后的系數(shù)被保存在DFP數(shù)字104a的50個最低有效位中。BCD-組合字段編碼器108根據(jù)SBCD數(shù)字的系數(shù)的MSD創(chuàng)建前面說明的5數(shù)位組合字段。組合字段被保存在DFP數(shù)字104a的第2-第6位中。
      對于雙精度格式化運算數(shù),從圖1中描述的處理輸出的64位DFP數(shù)字包括64位,包括最高有效位(位0)中的符號位,接下來的5個最高有效位(位1-5)中的組合字段,偏移指數(shù)延續(xù)字段(位6-13)中的0,和系數(shù)延續(xù)字段(位14-63)中的壓縮系數(shù)。
      如上所述,為預(yù)期是工作量中使用的最常見運算數(shù)的雙精度DFP運算數(shù)而設(shè)計CBCDR運算。但是,這些指令也可被用于處理擴展精度運算數(shù)。在圖2中描述了把34數(shù)位的BCD系數(shù)壓縮成擴展格式DFP數(shù)字的處理。
      把34數(shù)位的BCD系數(shù)轉(zhuǎn)換成四倍精度DFP運算數(shù)的處理包括一系列的移位、合并和CBCDR運算。左側(cè)的第一個源寄存器202(34數(shù)位BCD系數(shù)的低階位)被壓縮成DPD格式的50位,并被寫入右側(cè)的第一個中間寄存器208中。第二個源寄存器204(34數(shù)位BCD系數(shù)的2-18數(shù)位)被向左移動一個數(shù)位,并且來自第一個源寄存器202的MSD被合并到空出的最右側(cè)的數(shù)位中。該數(shù)據(jù)隨后被壓縮成50位的DPD數(shù)據(jù),并被寫入第二個中間寄存器210中。
      隨后,第三個源寄存器206被移位,直到它被左對齊,并且在第二個源寄存器204中未被處理的兩個數(shù)位(數(shù)位0-1)被合并到移位后的第三個源運算數(shù)數(shù)據(jù)的右側(cè)為止。如同關(guān)于CBCDR指令所述那樣進(jìn)行最終的壓縮,以致MSD被處理,從而它與目標(biāo)寄存器的組合字段對齊。結(jié)果被寫入第三個中間寄存器212中。最后的步驟是對齊中間寄存器208、210和212中的數(shù)據(jù),并將其合并成目標(biāo)寄存器對214,同時符號位和偏移指數(shù)延續(xù)字段分別被設(shè)成正和0。
      由箭頭216描述的處理是前面關(guān)于圖1說明的CBCDR運算。該處理可由順序執(zhí)行的相同硬件/軟件指令,和/或通過使三組相同的硬件/軟件指令并行執(zhí)行,從而產(chǎn)生第一個中間寄存器208,第二個中間寄存器210和第三個中間寄存器212中的結(jié)果來實現(xiàn)。另外,相同的CBCDR運算可被用于壓縮單精度格式化數(shù)字。相同的硬件(例如64位硬件)和/或軟件(例如毫碼(millicode))可被用于對由關(guān)于十進(jìn)制浮點數(shù)字的IEEE 754R標(biāo)準(zhǔn)規(guī)定的三種精度中的任意一種執(zhí)行壓縮。
      指數(shù)的插入(BCD數(shù)字到DFP)把出自SBCD數(shù)的二進(jìn)制指數(shù)插入DFP數(shù)的指令主要處理組合字段和偏移指數(shù)延續(xù)字段,所述偏移指數(shù)延續(xù)字段包含指數(shù)數(shù)據(jù)的剩余6、8或12位,取決于格式。三種插入指數(shù)指令包括插入指數(shù)單精度,插入指數(shù)雙精度,和插入指數(shù)擴展精度。這些指令中的每個指令從其值是將被插入目標(biāo)寄存器中的DFP數(shù)中的偏移指數(shù)的源寄存器讀取二進(jìn)制整數(shù)。在目標(biāo)寄存器中編碼的系數(shù)的MSD被讀取,以確定組合字段應(yīng)被如何編碼。組合字段和指數(shù)延續(xù)字段隨后被更新。所述更新把目標(biāo)寄存器中的目標(biāo)DFP數(shù)的指數(shù)值設(shè)成包含在源寄存器中的值。
      如果源寄存器為負(fù)(位0=1),那么目標(biāo)寄存器將用特殊數(shù)更新。在例證實施例中,兩個最低有效位被用于確定是否用代表無窮大(位6263=11′b),qNaN(位6263=10′b)或sNaN(位62=0′b)的值更新目標(biāo)寄存器。
      圖3根據(jù)本發(fā)明的例證實施例,描述用于實現(xiàn)從SBCD數(shù)的二進(jìn)制指數(shù)部分到DFP數(shù)的指數(shù)部分的轉(zhuǎn)換的指數(shù)插入的例證硬件圖。圖3描述了一個64位的二進(jìn)制指數(shù)302,和從參考圖1說明的處理輸出的64位DFP數(shù)104a。圖3中描述的處理的輸出是一個更新的64位DFP數(shù)104b,它包括對組合字段和偏移指數(shù)延續(xù)字段的更新。如果二進(jìn)制指數(shù)為負(fù)(位0的值為‘1’),那么64位二進(jìn)制指數(shù)302的運算數(shù)位0、62和63被輸入特殊數(shù)發(fā)生器306,從而如前所述那樣產(chǎn)生特殊值無窮大、qNaN和sNaN。組合字段發(fā)生器308接收二進(jìn)制指數(shù)302的6位(位50-51和54-57),來自特殊數(shù)發(fā)生器306的結(jié)果,運算數(shù)大小304,和DFP數(shù)104a。組合字段發(fā)生器308產(chǎn)生結(jié)果的1-5位(組合字段)和指數(shù)延續(xù)字段的第一位,并把結(jié)果寫入64位DFP數(shù)104b中。圖3中的處理還包括更新DFP數(shù)104b的偏移指數(shù)延續(xù)字段的指數(shù)延續(xù)字段發(fā)生器310。在一個例證的實施例中,特殊數(shù)發(fā)生器306的輸出被輸入指數(shù)延續(xù)字段發(fā)生器310中。如果特殊數(shù)發(fā)生器306指示DFP數(shù)是qNaN,那么指數(shù)延續(xù)字段發(fā)生器310用“0”重寫指數(shù)字段的最高有效位(位6)。如果特殊數(shù)發(fā)生器306指示DFP數(shù)是sNaN,那么指數(shù)延續(xù)字段發(fā)生器310用“1”重寫指數(shù)字段的最高有效位(位6)。
      系數(shù)的擴展(DFP到BCD)
      到BCD的展開運算獲得源寄存器中的雙精度DFP數(shù),并把保存為DPD和組合字段的DFP數(shù)的系數(shù)數(shù)位轉(zhuǎn)換成被寫入目標(biāo)寄存器中的BCD系數(shù)。如果源運算數(shù)是諸如無窮大、qNaN或sNaN之類的特殊數(shù),那么目標(biāo)寄存器的MSD被寫為0,并且可據(jù)此設(shè)置條件碼(無窮大=1,qNaN=2,sNaN=3)。這里,該運算也被稱為抽取成BCD運算(extract to BCD operationEBCDR)。
      圖4根據(jù)本發(fā)明的例證實施例描述用于EBCDR處理的例證硬件圖。圖4包括作為給可選的特殊數(shù)檢測器406,組合字段-BCD解碼器404和多個DPD-BCD解碼器402的輸入的64位DFP數(shù)104b。響應(yīng)確定DFP數(shù)104b的系數(shù)部分是否是特殊數(shù),設(shè)置條件碼112。在例證實施例中,如果系數(shù)是普通數(shù),那么條件碼被設(shè)為0,如果系數(shù)是無窮大,那么條件碼被設(shè)為1,如果系數(shù)是qNaN,那么條件碼被設(shè)為2,如果系數(shù)是sNaN,那么條件碼被設(shè)為3。
      DPD-BCD解碼器402均把10位的DPD擴展成三個BCD數(shù)位(12位)。對DFP數(shù)字104b中的系數(shù)延續(xù)字段中的所有位應(yīng)用解碼。對于雙精度數(shù)字來說,展開的SBCD系數(shù)延續(xù)字段被保存為16數(shù)位BCD系數(shù)102的15個最低有效數(shù)位。組合字段-BCD解碼器404接收DFP數(shù)字104b的5數(shù)位組合字段108,并產(chǎn)生BCD系數(shù)的MSD。
      如前所述,為預(yù)期是工作量中使用的最常見運算數(shù)的雙精度DFP運算數(shù)而設(shè)計EBCDR運算。但是,如圖5中所示,這些指令也可被用于處理擴展精度運算數(shù)。圖5中描述的用于把四倍(quad)精度DFP數(shù)轉(zhuǎn)換成34數(shù)位BCD系數(shù)的處理由一系列的移位、合并和EBCDR展開步驟組成。
      圖5中描述的處理始于把第一個源寄存器502的低階50位(DFP擴展精度運算數(shù)的低階50位)轉(zhuǎn)換(例如,利用圖4中描述的EBCDR處理)成第一個中間寄存器508中的15數(shù)位的BCD數(shù)據(jù)。第二個源寄存器504的系數(shù)延續(xù)字段(DFP擴展精度運算數(shù)的高階64位)被左移14位,第一個源寄存器502中的未處理位被合并到它們的右側(cè)。第二個擴展指令(例如,EBCDR)向第二個中間寄存器510中寫入另外的15個BCD數(shù)位。系數(shù)延續(xù)字段隨后被右移10位,并被保存在第三個源寄存器506中。最終的擴展指令(例如,EBCDR)把剩余的4個BCD數(shù)位寫入第三個中間寄存器512中。最后,這三個中間寄存器508、510和512中的34 BCD數(shù)位的數(shù)據(jù)被對齊,并被合并到為該運算分配的三個目的地寄存器514中。
      由箭頭516描述的處理是前面關(guān)于圖4說明的EBCDR運算。該處理可由順序執(zhí)行的相同硬件/軟件指令,和/或通過使三組相同的硬件/軟件指令并行執(zhí)行從而產(chǎn)生第一個中間寄存器508,第二個中間寄存器510和第三個中間寄存器512中的結(jié)果來實現(xiàn)。另外,相同的EBCDR運算可被用于壓縮單精度格式化數(shù)字。相同的硬件(例如64位硬件)和/或軟件(例如毫碼)可被用于對由關(guān)于十進(jìn)制浮點數(shù)字的IEEE 754R標(biāo)準(zhǔn)規(guī)定的三種精度中的任意一種執(zhí)行壓縮。
      指數(shù)的抽取(DFP到SBCD)指數(shù)抽取指令(每種格式一個指數(shù)抽取指令)從源寄存器讀取DFP數(shù)的高位雙字。對于單精度和雙精度,這包含整個DFP數(shù)。對于普通數(shù)字,該運算從編碼的組合字段和偏移指數(shù)延續(xù)字段抽取偏移指數(shù),并把條件碼設(shè)為0。如果源DFP數(shù)為無窮大,那么SBCD指數(shù)被設(shè)為-1,并且條件碼被設(shè)為1。如果源DFP數(shù)為qNaN,那么SBCD指數(shù)被設(shè)為-2,并且條件碼被設(shè)為2。如果源DFP數(shù)為sNaN,那么SBCD指數(shù)被設(shè)為-3,并且條件碼被設(shè)為3。按照這種方式使用條件碼使處理器能夠快速檢測何時特殊數(shù)被處理,并且不需要檢測這些特殊情況的特殊指令。
      圖6描述用于實現(xiàn)從DFP數(shù)104b到二進(jìn)制指數(shù)302的轉(zhuǎn)換的指數(shù)抽取的例證硬件圖。圖6描述作為輸入的一個64位DFP數(shù)(或者對于擴展精度來說,DFP數(shù)的前半部分)104b和運算數(shù)大小304。特殊數(shù)檢測器406根據(jù)組合字段和偏移指數(shù)延續(xù)字段的第一位的值,如上所述尋找特殊數(shù)。特殊數(shù)檢測器406設(shè)置條件碼112,并把狀態(tài)輸出給指數(shù)抽取器602。指數(shù)抽取器602根據(jù)組合字段和偏移指數(shù)延續(xù)字段,運算數(shù)大小304和來自特殊數(shù)檢測器406的輸出,確定二進(jìn)制指數(shù)302。
      本發(fā)明的例證實施例允許單獨地執(zhí)行這里描述的處理(系數(shù)壓縮、系數(shù)展開、指數(shù)插入和指數(shù)抽取)。例如,如果已知數(shù)據(jù)集包含相同的指數(shù)值(即,用于在已知用便士表示的集合中增加數(shù)據(jù)值),那么不需要抽取指數(shù)所需的額外處理和寄存器使用。另一例子可以是用于把數(shù)據(jù)庫從SBCD轉(zhuǎn)換到DFP的例程,不需要把DFP轉(zhuǎn)換回SBCD的任何轉(zhuǎn)換處理。另一例子是檢查特殊值,只需要抽取指數(shù)處理即可獲得必需的條件碼。順次執(zhí)行每個轉(zhuǎn)換操作的選擇也便于減少系統(tǒng)所需的硬件,因為所有運算可以使用相同的中間寄存器。對于可供所需硬件使用的面積或功率有限的硬件實現(xiàn)來說,這種性能與復(fù)雜性的折衷是重要的。
      本發(fā)明的例證實施例提供支持三種IEEE 754R標(biāo)準(zhǔn)DFP格式的四種轉(zhuǎn)換運算。所述運算包括系數(shù)壓縮、壓縮展開、指數(shù)插入和指數(shù)抽取。這里描述的例證實施例可用在使用最少的額外數(shù)據(jù)流硬件的標(biāo)準(zhǔn)超標(biāo)量微處理器中。另外,通過結(jié)果值和/或條件碼在一般情況下檢測和報告特殊數(shù)。另外,通過條件碼報告無效的十進(jìn)制數(shù)據(jù)。
      本發(fā)明的能力可用軟件、固件、硬件或者它們的組合來實現(xiàn)。
      作為一個例子,本發(fā)明的一個或多個方面可被包括在一個制造產(chǎn)品(例如一個或多個計算機程序產(chǎn)品)中,所述制造產(chǎn)品具有例如計算機可用介質(zhì)。所述介質(zhì)其中包含用于提供和促進(jìn)本發(fā)明的能力的計算機可讀程序代碼裝置。所述制造產(chǎn)品可被包括為計算機系統(tǒng)的一部分或者單獨銷售。
      另外,能夠提供至少一種可由機器讀取的程序存儲裝置,所述程序存儲裝置確實包含可由機器執(zhí)行,從而實現(xiàn)本發(fā)明的能力的指令的至少一個程序。
      這里描述的附圖只是一些例子。在不脫離本發(fā)明的精神的情況下,存在這里描述的這些附圖或步驟(或運算)的許多變化。例如,步驟可按照不同的順序執(zhí)行,或者可以增加、刪除或修改步驟。所有這些變化都被視為要求保護的發(fā)明的一部分。
      雖然說明了本發(fā)明的優(yōu)選實施例,不過顯然在現(xiàn)在和在未來,本領(lǐng)域的技術(shù)人員能夠做出落入下面的權(quán)利要求的范圍內(nèi)的各種改進(jìn)和提高。這些權(quán)利要求應(yīng)被解釋成主張對首次描述的發(fā)明的恰當(dāng)保護。
      權(quán)利要求
      1.一種從十進(jìn)制浮點(DFP)轉(zhuǎn)換到比例二進(jìn)制編碼十進(jìn)制(SBCD)的系統(tǒng),所述系統(tǒng)包括接收DFP數(shù)的機構(gòu);和對DFP數(shù)進(jìn)行系數(shù)展開從而產(chǎn)生SBCD數(shù)的二進(jìn)制編碼十進(jìn)制(BCD)系數(shù)部分的機構(gòu)和對DFP數(shù)執(zhí)行指數(shù)抽取從而產(chǎn)生SBCD數(shù)的二進(jìn)制指數(shù)部分的機構(gòu)中的至少一個。
      2.按照權(quán)利要求1所述的系統(tǒng),其中執(zhí)行系數(shù)展開的機構(gòu)包括密集壓縮十進(jìn)制(DPD)-BCD轉(zhuǎn)換器的一個庫,系數(shù)展開包括利用DPD-BCD轉(zhuǎn)換器的所述一個庫把DFP數(shù)的系數(shù)從DPD轉(zhuǎn)換成BCD,和從DFP數(shù)的組合字段抽取SBCD數(shù)的系數(shù)部分的最高有效數(shù)位的機構(gòu)。
      3.按照權(quán)利要求2所述的系統(tǒng),其中DPD-BCD轉(zhuǎn)換器的所述一個庫被使用兩次或更多次,以便轉(zhuǎn)換DFP系數(shù)的各部分。
      4.按照權(quán)利要求1所述的系統(tǒng),其中執(zhí)行系數(shù)展開的機構(gòu)包括DPD-BCD轉(zhuǎn)換器的多個庫,系數(shù)展開包括利用DPD-BCD轉(zhuǎn)換器的所述多個庫把DFP數(shù)的系數(shù)從DPD轉(zhuǎn)換成BCD,和從DFP數(shù)的組合字段抽取SBCD數(shù)的系數(shù)部分的最高有效數(shù)位的機構(gòu)。
      5.按照權(quán)利要求1所述的系統(tǒng),還包括與SBCD數(shù)的指數(shù)部分對應(yīng)的寄存器,其中指數(shù)抽取包括把對應(yīng)于DFP數(shù)的指數(shù)的位放入所述寄存器中,其中兩個最高有效位解碼自DFP數(shù)的組合字段。
      6.按照權(quán)利要求1所述的系統(tǒng),還包括根據(jù)DFP數(shù)是否是特殊數(shù)來設(shè)置條件碼的機構(gòu)。
      7.按照權(quán)利要求1所述的系統(tǒng),其中所得到的SBCD數(shù)的指數(shù)部分指示DFP數(shù)是否是特殊數(shù)。
      8.按照權(quán)利要求1所述的系統(tǒng),其中DFP數(shù)是單精度。
      9.按照權(quán)利要求1所述的系統(tǒng),其中DFP數(shù)是雙精度。
      10.按照權(quán)利要求1所述的系統(tǒng),其中DFP數(shù)是擴展精度。
      11.按照權(quán)利要求1所述的系統(tǒng),其中所述至少一個機構(gòu)只包括執(zhí)行系數(shù)展開的機構(gòu)。
      12.按照權(quán)利要求1所述的系統(tǒng),其中所述至少一個機構(gòu)只包括執(zhí)行指數(shù)抽取的機構(gòu)。
      13.按照權(quán)利要求1所述的系統(tǒng),其中所述至少一個機構(gòu)包括執(zhí)行系數(shù)展開的機構(gòu)和執(zhí)行指數(shù)抽取的機構(gòu)。
      14.一種從DFP到SBCD的轉(zhuǎn)換方法,所述方法包括接收DFP數(shù);執(zhí)行至少下列之一執(zhí)行對DFP數(shù)的系數(shù)展開從而產(chǎn)生SBCD數(shù)的系數(shù)部分,和執(zhí)行對DFP數(shù)的指數(shù)抽取從而產(chǎn)生SBCD數(shù)的指數(shù)部分。
      15.按照權(quán)利要求14所述的方法,其中所述執(zhí)行只包括執(zhí)行系數(shù)展開。
      16.按照權(quán)利要求14所述的方法,其中所述執(zhí)行只包括執(zhí)行指數(shù)抽取。
      17.按照權(quán)利要求14所述的方法,其中所述執(zhí)行包括執(zhí)行系數(shù)展開和指數(shù)抽取。
      18.按照權(quán)利要求14所述的方法,其中系數(shù)展開包括利用DPD-BCD轉(zhuǎn)換器的一個或多個庫把DFP數(shù)的DFP系數(shù)從DPD轉(zhuǎn)換成BCD,和從DFP數(shù)的組合字段抽取SBCD數(shù)的系數(shù)部分的最高有效數(shù)位。
      19.按照權(quán)利要求14所述的方法,還包括根據(jù)DFP數(shù)的有效性,設(shè)置條件碼。
      20.一種從十進(jìn)制浮點(DFP)轉(zhuǎn)換到比例二進(jìn)制編碼十進(jìn)制(SBCD)的系統(tǒng),所述系統(tǒng)包括接收DFP數(shù)的機構(gòu);對DFP數(shù)執(zhí)行系數(shù)展開從而產(chǎn)生SBCD數(shù)的二進(jìn)制編碼十進(jìn)制(BCD)系數(shù)部分的機構(gòu)和對DFP數(shù)執(zhí)行指數(shù)抽取從而產(chǎn)生SBCD數(shù)的指數(shù)部分的機構(gòu)這二者之一,其中執(zhí)行系數(shù)展開的機構(gòu)由雙精度硬件實現(xiàn);DFP數(shù)是單精度、雙精度或擴展精度;執(zhí)行系數(shù)展開包括確定DFP數(shù)是否是特殊數(shù),并且響應(yīng)于確定DFP數(shù)是特殊數(shù),設(shè)置條件碼;和執(zhí)行指數(shù)抽取包括確定DFP數(shù)是否是特殊數(shù),如果DFP數(shù)是特殊數(shù),那么設(shè)置SBCD的指數(shù)部分,以指示SBCD數(shù)是特殊數(shù)。
      全文摘要
      一種從十進(jìn)制浮點(DFP)到比例二進(jìn)制編碼十進(jìn)制(SBCD)的轉(zhuǎn)換系統(tǒng)和方法。所述系統(tǒng)包括接收DFP數(shù)的機構(gòu)。所述系統(tǒng)還包括對DFP數(shù)執(zhí)行系數(shù)展開,從而產(chǎn)生SBCD數(shù)的二進(jìn)制編碼十進(jìn)制(BCD)系數(shù)部分的機構(gòu),和對DFP數(shù)執(zhí)行指數(shù)抽取,從而產(chǎn)生SBCD數(shù)的指數(shù)部分的機構(gòu)中的至少一個。
      文檔編號H03M7/02GK1945981SQ20061012819
      公開日2007年4月11日 申請日期2006年9月6日 優(yōu)先權(quán)日2005年9月15日
      發(fā)明者斯氐芬·R.·卡魯, 埃里克·M.·施瓦茨, 雪利爾·H.·威奈拉雄 申請人:國際商業(yè)機器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1