專利名稱:浮點(diǎn)加法器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)的領(lǐng)域。更具體地,本發(fā)明涉及浮點(diǎn)加法器的領(lǐng)域。
背景技術(shù):
在數(shù)據(jù)處理系統(tǒng)中公知了提供可以加和減浮點(diǎn)數(shù)的浮點(diǎn)加法器。這些浮點(diǎn)數(shù)可以包括符號(hào)位、指數(shù)字段和尾數(shù)字段。浮點(diǎn)數(shù)格式和浮點(diǎn)算術(shù)操作的例子可以在IEEE 754標(biāo)準(zhǔn)中找到。當(dāng)相加(或者可以通過(guò)與首先經(jīng)過(guò)修改的輸入中的一個(gè)輸入相加而實(shí)現(xiàn)的相減)時(shí),通常在加法被執(zhí)行之前,具有較小指數(shù)的加數(shù)被右移以對(duì)齊小數(shù)點(diǎn)的位置。這種對(duì)齊將尾數(shù)值的最低有效位移出尾數(shù)結(jié)果的有效位范圍,因此將損失精度。這導(dǎo)致需要對(duì)結(jié)果進(jìn)行適當(dāng)?shù)乃纳嵛迦?。在浮點(diǎn)算術(shù)中支持各種四舍五入模式。一個(gè)四舍五入模式是舍入到最近的偶數(shù)。公知當(dāng)執(zhí)行這種舍入時(shí),粘滯位應(yīng)當(dāng)被確定和保持,所述粘滯位指示當(dāng)小數(shù)點(diǎn)的位置被對(duì)齊時(shí)被右移出有效位范圍的任意位是否具有非零值。這個(gè)粘滯位通??梢酝ㄟ^(guò)對(duì)在加數(shù)尾數(shù)對(duì)齊期間被移出有效位范圍的所有位執(zhí)行邏輯OR操作來(lái)確定。這個(gè)方法的問(wèn)題是OR操作可能是很多位寬的并且在處理路徑中引入不利的延遲度。延遲的增加可能降低可以使用的最大操作時(shí)鐘頻率,減小定時(shí)馳豫并且具有其它負(fù)面后果。
在浮點(diǎn)加法器領(lǐng)域中,公知提供遠(yuǎn)路徑加法器以在操作數(shù)的量值大于預(yù)定差值時(shí)使用,以及近路徑加法器以在操作數(shù)的量值小于預(yù)定差值時(shí)使用。
發(fā)明內(nèi)容
從一個(gè)方面來(lái)看,本發(fā)明提供了用于將第一浮點(diǎn)數(shù)與第二浮點(diǎn)數(shù)相加的浮點(diǎn)加法器電路,所述第一浮點(diǎn)數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點(diǎn)數(shù)具有指數(shù)值Eb和尾數(shù)值Mb并且Ea大于或等于Eb,所述浮點(diǎn)加法器電路包括遠(yuǎn)路徑電路,被配置為當(dāng)所述第一浮點(diǎn)數(shù)和第二浮點(diǎn)數(shù)匹配至少一個(gè)預(yù)定的遠(yuǎn)路徑條件時(shí)生成結(jié)果浮點(diǎn)值,所述遠(yuǎn)路徑電路具有尾隨零計(jì)數(shù)電路,被配置為確定與在從Mb的最低有效位端開(kāi)始Mb的最低有效(Ea-Eb)位內(nèi)的尾隨零值的游程相對(duì)應(yīng)的尾隨零值TZ ;以及遠(yuǎn)路徑加法器,被配置為將第一加數(shù)值與第二加數(shù)值相加,所述第一加數(shù)值包括Ma與第一后綴值串接并且所述第二加數(shù)值包括不帶其(Ea-Eb)最低有效位的Mb與第二后綴值串接;其中所述第一后綴值和所述第二后綴值根據(jù)TZ和(Ea-Eb)中相應(yīng)的一個(gè)被形成。本發(fā)明意識(shí)到代替通過(guò)對(duì)被移出到有效位范圍以外的位進(jìn)行邏輯OR來(lái)明顯地計(jì)算粘滯位,可以通過(guò)根據(jù)取決于被移出位中尾隨零的數(shù)目以及指數(shù)值差值的總和(這些加數(shù)中的一個(gè)首先被進(jìn)行NOT操作)確定進(jìn)位輸出,從而間接地計(jì)算具有相同值的位。尾隨零數(shù)目的計(jì)算可以與對(duì)較小的加數(shù)進(jìn)行的右移并行地被執(zhí)行,從而通過(guò)加法器電路有效地減小延遲。
第一后綴值可以包括三個(gè)填充位后面跟⑴尾隨零的數(shù)目加二 ;或(ii)指數(shù)值的差值中的一個(gè)值,這些值中的一個(gè)被進(jìn)行NOT操作,并且第二后綴值可以包括一個(gè)填充位后面跟(i)尾隨零的數(shù)目加二 ;或(ii)指數(shù)值的差值中的另外一個(gè)值。所述三個(gè)填充位和一個(gè)填充位可以被選擇為具有總和為輸出尾數(shù)值中的最低精度單位的一半的值,所述輸出尾數(shù)值由遠(yuǎn)路徑加法器根據(jù)浮點(diǎn)數(shù)和的格式所生成。應(yīng)當(dāng)理解與要相加的尾數(shù)值串接并且產(chǎn)生與傳統(tǒng)粘滯位等同的進(jìn)位的后綴值可以利用被進(jìn)行了 NOT操作的尾隨零計(jì)數(shù)或者指數(shù)差值來(lái)形成。被右移的第二加數(shù)也將具有零值前綴以將其長(zhǎng)度填充為與第一加數(shù)的尾數(shù)相同的長(zhǎng)度。 作為前綴被加到第二加數(shù)上的前導(dǎo)零值可以利用第二加數(shù)移位器電路來(lái)插入。尾隨零計(jì)數(shù)電路可以被配置為與指數(shù)差值計(jì)算電路并行操作。指數(shù)差值可被要求與尾隨零計(jì)數(shù)進(jìn)行對(duì)比,但是利用該指數(shù)差值有效地為尾隨零計(jì)數(shù)設(shè)置最大值,尾隨零計(jì)數(shù)操作可以開(kāi)始于指數(shù)差值已知之前。利用與尾數(shù)串接并通過(guò)遠(yuǎn)路徑加法器饋送的后綴值來(lái)計(jì)算與粘滯位具有相同值的位的上述技術(shù)可以在通過(guò)遠(yuǎn)路徑加法器所饋送的值的長(zhǎng)度變化不超過(guò)2的位寬次方的邊界時(shí)被使用。這個(gè)約束條件是由于很多超前進(jìn)位加法器(例如Sklansky加法器和Kogge-Stone加法器)的工作方式而引起的,如果2的乘冪的邊界被超過(guò)時(shí),額外的門(mén)延遲將會(huì)被引入。其中浮點(diǎn)運(yùn)算被執(zhí)行的很多實(shí)際情況都滿足這個(gè)約束條件。應(yīng)當(dāng)理解上述的浮點(diǎn)加法機(jī)制需要識(shí)別哪個(gè)輸入加數(shù)具有更大尺寸(至少具有最大指數(shù)值或相等的最大指數(shù)值或相等的最大指數(shù)值)。實(shí)現(xiàn)該識(shí)別的一個(gè)方式是在加法開(kāi)始之前比較指數(shù)值,然后將輸入加數(shù)切換到適當(dāng)?shù)穆窂?,匹配用于較大加數(shù)的路徑和用于較小加數(shù)的路徑。這種方法相對(duì)來(lái)說(shuō)很少增加門(mén)數(shù)目,但是會(huì)增大操作的延遲時(shí)間。另一種方法是復(fù)制加法器電路并基于關(guān)于哪個(gè)輸入加數(shù)的尺寸更大的相反假設(shè)通過(guò)相應(yīng)的復(fù)制路徑饋送輸入加數(shù)。因此,加法操作可以更快地開(kāi)始,并且當(dāng)后來(lái)確定了實(shí)際上是哪個(gè)輸入加數(shù)的尺寸更大(具有大于或等于另一輸入加數(shù)的指數(shù)值的指數(shù)值)時(shí),來(lái)自適當(dāng)?shù)膹?fù)制路徑的結(jié)果可以被選擇輸出。如上所述,本發(fā)明的加法器電路也可以執(zhí)行減法操作。這可以通過(guò)包括反相電路在一些實(shí)施例中被實(shí)現(xiàn),所述反相電路在第一加數(shù)與第二加數(shù)相加之前對(duì)第二加數(shù)的尾數(shù)內(nèi)的位進(jìn)行反相。本發(fā)明同樣適用于浮點(diǎn)加法和浮點(diǎn)減法。本領(lǐng)域技術(shù)人員將熟知浮點(diǎn)加法器可以包括用于將浮點(diǎn)數(shù)與大于預(yù)定界限的差值相加的遠(yuǎn)路徑加法器和用于將浮點(diǎn)數(shù)與小于預(yù)定界限的差值相加的近路徑加法器。當(dāng)可能有大量的尾數(shù)位被移出有效位范圍并且需要根據(jù)這些尾數(shù)位計(jì)算的粘滯位時(shí),上述確定與用于控制舍入的粘滯位等同的位值的技術(shù)在遠(yuǎn)路徑加法器中非常有用。在近路徑加法器中,公知對(duì)結(jié)果尾數(shù)內(nèi)的前導(dǎo)零進(jìn)行計(jì)數(shù),然后執(zhí)行適當(dāng)?shù)囊莆缓椭笖?shù)調(diào)節(jié)來(lái)規(guī)范浮點(diǎn)結(jié)果。這種方法的問(wèn)題在于前導(dǎo)零計(jì)數(shù)和要被應(yīng)用的相關(guān)聯(lián)的后續(xù)左移位可能導(dǎo)致在可被有效地表示的范圍以外的相應(yīng)指數(shù)值。用于處理該問(wèn)題的已知技術(shù)通常提供附加電路,用于識(shí)別是否有范圍以外的指數(shù)值被產(chǎn)生,然后修復(fù)結(jié)果以生成非正規(guī)(denormal)浮點(diǎn)數(shù)。這種方法可能會(huì)引起近路徑加法器中延遲的增加。本發(fā)明的另一方面可以單獨(dú)使用或者與被應(yīng)用于遠(yuǎn)路徑加法器的上述技術(shù)組合使用,其中最小值電路被提供在近路徑加法器內(nèi)并且用于將結(jié)果被左移的結(jié)果移位值確定為對(duì)結(jié)果尾數(shù)執(zhí)行的前導(dǎo)零計(jì)數(shù)和較大輸入加數(shù)的指數(shù)值中的較低值(注意,即使是當(dāng)減法被執(zhí)行時(shí),術(shù)語(yǔ)“加數(shù)”仍然可以被使用)。如果較大加數(shù)的指數(shù)值接近最小值,則該指數(shù)可能低于前導(dǎo)零計(jì)數(shù),因此提供關(guān)于要對(duì)結(jié)果尾數(shù)執(zhí)行的左移的限制,并且控制左移以使得將得到正確形成的非正規(guī)數(shù),而不需要執(zhí)行增加延遲時(shí)間的修補(bǔ)操作。當(dāng)輸入加數(shù)滿足預(yù)定的近路徑條件時(shí),近路徑加法器可以被使用。當(dāng)輸入加數(shù)的值差別較小時(shí),尾數(shù)移位電路可以被提供以在較小加數(shù)的尾數(shù)被輸入到近路徑加法器之前被將該尾數(shù)右移與指數(shù)差值相等的位數(shù)的位置。最小值電路可以被配置為在結(jié)果移位值的一個(gè)或多個(gè)低價(jià)位被生成之前生成結(jié)果移位值的一個(gè)或多個(gè)高階位。這是有益的,因?yàn)樗试S采用對(duì)數(shù)移位器的形式的結(jié)果移位電路在完整精度的結(jié)果移位值可用之前開(kāi)始其對(duì)中間尾數(shù)的右移以產(chǎn)生結(jié)果尾數(shù)。這減 小了近路徑的延遲。最小值電路可以具有多種不同的形式并且以各種不同的方式計(jì)算最小值。最小值電路操作的一種方式在允許較早的生成結(jié)果移位值的高階位方面被認(rèn)為是非常方便的,這種方式是當(dāng)所述最小值電路具有兩個(gè)輸入LZ和Ea時(shí),通過(guò)按以下方式確定長(zhǎng)度為21 (從i=O開(kāi)始)的所述結(jié)果移位值的一系列前綴部分Pi來(lái)確定結(jié)果移位值Pi = (LZi AND NOT GRi)0R(EAi AND GRi),其中LZi為長(zhǎng)度為21的LZ的前綴部分;Em為長(zhǎng)度為21的Ea的前綴部分;對(duì)于i = O和有效位遞減的每個(gè)位位置k,EQi [k] = NOT (LZ [k] XOR Ea[k]);對(duì)于i = 0和有效位遞減的每個(gè)位位置k,當(dāng)LZ[k] > Ea[k]時(shí)GRi[k] = I,當(dāng)LZ [k] ( Ea [k]時(shí) GRiM = O ;對(duì)于i > O和有效位遞減的每個(gè)位位置k,EQi [k] = EQhMAND EQi^1 [k+2(i^];以及對(duì)于i > O和有效位遞減的每個(gè)位位置k,GRi [k] = GRi^1 [k] OR (Ei^1 [k]ANDGRhM(H)])。近路徑可被使用的限制情況是其中近距離預(yù)定量為I的情況。當(dāng)結(jié)果浮點(diǎn)數(shù)為非正規(guī)浮點(diǎn)數(shù)時(shí),該技術(shù)特別有用。從另一方面來(lái)看,本發(fā)明提供了一種用于將第一浮點(diǎn)數(shù)減去第二浮點(diǎn)數(shù),所述第一浮點(diǎn)數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點(diǎn)數(shù)具有指數(shù)值Eb和尾數(shù)值Mb并且Ea大于或等于Eb,所述浮點(diǎn)加法器電路包括近路徑電路,被配置為當(dāng)所述第一浮點(diǎn)數(shù)和所述第二浮點(diǎn)數(shù)匹配至少一個(gè)預(yù)定的近路徑條件時(shí)生成結(jié)果浮點(diǎn)值,所述近路徑電路具有近路徑加法器,被配置為確定與(Ma-Mb)相對(duì)應(yīng)的中間尾數(shù)值M1 ;前導(dǎo)零計(jì)數(shù)電路,被配置為確定與在從M1的最高有效位端開(kāi)始M1內(nèi)的前導(dǎo)零值的游程相對(duì)應(yīng)的前導(dǎo)零值LZ ;最小值電路,被配置為將結(jié)果移位值確定為L(zhǎng)Z和Ea中較低的值;以及結(jié)果移位電路,被配置為將M1左移與所述結(jié)果移位值相對(duì)應(yīng)的多個(gè)位的位置以生成構(gòu)成結(jié)果浮點(diǎn)數(shù)的一部分的結(jié)果尾數(shù)Μκ。
應(yīng)當(dāng)理解減小近路徑內(nèi)的延遲時(shí)間的技術(shù)可以與用于減小遠(yuǎn)路徑內(nèi)的延遲時(shí)間的技術(shù)互相獨(dú)立地被使用。然而,對(duì)這些技術(shù)的組合使用是有益的,因?yàn)榻窂胶瓦h(yuǎn)路徑可以被保持平衡的延遲時(shí)間。本發(fā)明的另一方面提供用于確定將第一浮點(diǎn)數(shù)和第二浮點(diǎn)數(shù)相加時(shí)所使用的粘滯位的浮點(diǎn)運(yùn)算電路,所述第一浮點(diǎn)數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點(diǎn)數(shù)具有指數(shù)值Eb和尾數(shù)值Mb并且Ea大于或等于Eb,所述浮點(diǎn)運(yùn)算電路包括移位量確定電路,被配置為確定取決于(Ea-Eb)的移位量,所述移位量對(duì)應(yīng)于要被應(yīng)用于Mb以形成要與Ma相加的Mb的移位后的版本的右移位尾隨零計(jì)數(shù)電路,被配置為確定與在從Mb的最低有效位端開(kāi)始Mb的尾隨零值的游 程相對(duì)應(yīng)的尾隨零值;以及粘滯位值確定電路,被配置為將所述移位量與所述尾隨零值進(jìn)行比較以確定所述粘滯位的值,所述粘滯位指示是否有任何非零位將從要與Ma相加的所述Mb的移位后版本中被移出。本發(fā)明的其它方面在所附權(quán)利要求中被列出。根據(jù)結(jié)合附圖描述的以下對(duì)說(shuō)明性實(shí)施例的詳細(xì)描述,本發(fā)明的以上和其它目的、特征和優(yōu)點(diǎn)將變得清楚。
圖I示意性地圖示了包括浮點(diǎn)加法器電路的集成電路;圖2和圖3示意性地圖示了用于確保浮點(diǎn)加法結(jié)果基于已知了哪個(gè)輸入量值更大的輸入被生成的兩種方法;圖4示意性地圖示了包括遠(yuǎn)路徑加法器和近路徑加法器的浮點(diǎn)加法器電路;圖5示意性地圖示了 16位浮點(diǎn)數(shù)的格式;圖6示意性地圖示了包括尾隨零計(jì)數(shù)電路的遠(yuǎn)路徑加法器;圖7示意性地圖示了包括最小值電路的近路徑加法器電路;圖8示意性地圖示了利用尾隨零計(jì)數(shù)來(lái)確定粘滯位的等同物的16位浮點(diǎn)加法內(nèi)的數(shù)據(jù)流;以及圖9示意性地圖示了利用尾隨零計(jì)數(shù)來(lái)確定粘滯位的等同物的16位浮點(diǎn)減法內(nèi)的數(shù)據(jù)流。
具體實(shí)施例方式圖I示意性地圖示了包括用于存儲(chǔ)浮點(diǎn)數(shù)的一排浮點(diǎn)寄存器4和包括多個(gè)處理級(jí)的數(shù)據(jù)處理流水線6的集成電路2,所述處理級(jí)中的至少一個(gè)提供浮點(diǎn)加法器電路8。根據(jù)數(shù)據(jù)處理系統(tǒng)中的傳統(tǒng)流水線,流水線級(jí)被公共時(shí)鐘驅(qū)動(dòng),所述公共時(shí)鐘控制一個(gè)處理級(jí)的結(jié)果向下一個(gè)處理級(jí)的推進(jìn)。可以減少與在每個(gè)處理級(jí)執(zhí)行的處理相關(guān)聯(lián)的延遲時(shí)間的措施是有益的,因?yàn)樗鼈兝缈梢栽试S使用更高的時(shí)鐘頻率并且因此在給定時(shí)間量?jī)?nèi)完成更大量的數(shù)據(jù)處理。被減少的延遲時(shí)間還可以增大處理級(jí)之間的定時(shí)馳豫(timingslack),具有使設(shè)計(jì)更加魯棒的優(yōu)點(diǎn)。在根據(jù)這里所描述的示例實(shí)施例的浮點(diǎn)加法器電路中,假設(shè)具有最高量值的浮點(diǎn)數(shù)被提供作為輸入加數(shù)A并且具有最低量值的浮點(diǎn)數(shù)被提供作為輸入加數(shù)B。當(dāng)兩個(gè)任意浮點(diǎn)數(shù)作為浮點(diǎn)加法器電路8的輸入被接收時(shí),可能提前不知道哪個(gè)浮點(diǎn)數(shù)具有更大的量值。圖2和圖3圖示了處理這個(gè)問(wèn)題的兩種可能的方法。在圖2中,比較電路10用于比較兩個(gè)輸入加數(shù)的量值(或者至少是指數(shù)的量值)。然后,該比較的結(jié)果被用于控制多路選擇器12,14以引導(dǎo)第一輸入加數(shù)和第二輸入加數(shù),從而形成到浮點(diǎn)加法器電路16的輸入A和B中的適當(dāng)?shù)南鄳?yīng)加數(shù)。這種方法具有增加相對(duì)來(lái)說(shuō)很少的附加門(mén)的優(yōu)點(diǎn),但是由于在浮點(diǎn)加法器電路16可以開(kāi)始操作之前需要確定來(lái)自比較電路10的結(jié)果,所以這種方法具有增大了與浮點(diǎn)加法相關(guān)聯(lián)的延遲時(shí)間的缺點(diǎn)。圖3圖示了替代方法。在該方法中,浮點(diǎn)加法器電路18,20是被復(fù)制的,并且每個(gè)電路都接收這兩個(gè)輸入加數(shù)。在浮點(diǎn)加法器電路18中,假設(shè)第一輸入加數(shù)的量值大于第二輸入加數(shù)。在第二浮點(diǎn)加法器電路20中,假設(shè)第二輸入加數(shù)的量值大于第一輸入加數(shù)。浮點(diǎn)加法器電路18和浮點(diǎn)加法器電路20并行操作來(lái)計(jì)算各自的結(jié)果浮點(diǎn)數(shù)。這些浮點(diǎn)數(shù)中的一個(gè)將是不正確的,因?yàn)樗腔陉P(guān)于第一輸入加數(shù)和第二輸入加數(shù)中哪個(gè)加數(shù)的量值更大的不正確假設(shè)的。在通過(guò)由浮點(diǎn)加法器電路18和浮點(diǎn)加法器電路20執(zhí)行的計(jì)算過(guò)程中,可以做出關(guān)于第一輸入加數(shù)和第二輸入加數(shù)中哪一個(gè)加數(shù)更大的判斷。該判斷結(jié)果被提供給多路選擇器22以選擇來(lái)自正在使用正確假設(shè)的浮點(diǎn)加法器電路18,20的結(jié)果浮點(diǎn)數(shù)。這種方法具有產(chǎn)生較少的與浮點(diǎn)加法相關(guān)聯(lián)的延遲增加的優(yōu)點(diǎn),但是具有需要更多的門(mén)數(shù)目的缺點(diǎn),因?yàn)楦↑c(diǎn)加法器電路18,20被復(fù)制以提供被配置為形成基于第一假設(shè)的第一處理路徑和基于第二假設(shè)的第二處理路徑的復(fù)制電路。圖4示意性地圖示了被用于將兩個(gè)浮點(diǎn)數(shù)相加(或相減)的浮點(diǎn)加法器電路24。這些浮點(diǎn)數(shù)中的每個(gè)浮點(diǎn)數(shù)包括符號(hào)位S,指數(shù)位字段E和尾數(shù)位字段M。本領(lǐng)域技術(shù)人員將熟知,在浮點(diǎn)加法器電路20中提供有當(dāng)將量值不近似的兩個(gè)浮點(diǎn)數(shù)相加(或相減)時(shí)所使用的遠(yuǎn)路徑電路26以及當(dāng)將量值近似的兩個(gè)浮點(diǎn)數(shù)相加(或相減)時(shí)所使用的近路徑電路28。多路選擇器30被對(duì)于兩個(gè)輸入加數(shù)之間的量值差值的大小的判斷結(jié)果控制,以選擇來(lái)自遠(yuǎn)路徑電路26的輸出或來(lái)自近路徑電路28的輸出作為結(jié)果浮點(diǎn)值。決定遠(yuǎn)路徑電路26和近路徑電路28中哪一個(gè)要被使用的遠(yuǎn)路徑條件和近路徑條件可以按以下方式被評(píng)
估I :如果兩個(gè)輸入具有相同符號(hào),則這是“有效相加”,使用遠(yuǎn)路徑。2 :如果Ea-Eb大于I,則遠(yuǎn)路徑被使用。3 :如果Ea-Eb為零并且兩個(gè)輸入具有相反的符號(hào),則近路徑被使用。4 :如果Ea-Eb為I并且輸入具有相反的符號(hào),則尾數(shù)位被檢查如果Ma的最高位的下一位(即,在前導(dǎo)I位之后的最高位)為I,則遠(yuǎn)路徑被使用,否則近路徑被使用。圖5示意性地圖示了根據(jù)IEEE-754-2008標(biāo)準(zhǔn)的16位浮點(diǎn)數(shù)的格式。具體而言,這些浮點(diǎn)數(shù)包括單個(gè)符號(hào)位,5位指數(shù)字段和10位尾數(shù)字段。這些字段內(nèi)的位值與所表示的浮點(diǎn)數(shù)之間的關(guān)系在圖5中被示出??梢钥吹街笖?shù)值被進(jìn)行了“-15”的偏移。這導(dǎo)致當(dāng)指數(shù)字段[14:10]具有最低正常值I時(shí),所表示的浮點(diǎn)數(shù)包括2_14的因子。如果想要表示更小的浮點(diǎn)數(shù),則不可能進(jìn)一步減小指數(shù)值,因此非正規(guī)數(shù)被使用。就非正規(guī)數(shù)而言,指數(shù)字段為全零,但是尾數(shù)字段與在小數(shù)點(diǎn)位置左邊的假設(shè)的前導(dǎo)值“ I ”不相關(guān)聯(lián)。因此,在尾數(shù)值內(nèi)有前導(dǎo)零,例如“O. 000... ”。這種非正規(guī)值對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)將是熟知的。
圖6示意性地圖示了遠(yuǎn)路徑電路18。具有最大量值(或者至少最大指數(shù))的輸入加數(shù)被提供在輸入A上。另一輸入浮點(diǎn)數(shù)被提供在輸入B上。應(yīng)當(dāng)理解如果指數(shù)值相同,則無(wú)所謂輸入加數(shù)以何種順序被應(yīng)用于輸入A和B。遠(yuǎn)路徑電路18的操作的總體原則是較小量值的輸入加數(shù)被第二加數(shù)移位器電路24進(jìn)行右移位,以在遠(yuǎn)路徑加法器26將兩個(gè)尾數(shù)值相加之前,使兩個(gè)加數(shù)的有效指數(shù)值相等并對(duì)齊尾數(shù)內(nèi)的小數(shù)點(diǎn)位置。在傳統(tǒng)的遠(yuǎn)路徑電路中,被右移出將通過(guò)遠(yuǎn)路徑加法器26相加的有效位范圍的較小輸入加數(shù)的位需要被檢查以確定它們是否會(huì)導(dǎo)致向結(jié)果尾數(shù)值的借位,該借位可能影響之后被應(yīng)用于尾數(shù)值的舍入。確定這個(gè)借位值(或粘滯位)的傳統(tǒng)方法是對(duì)低量值輸入 加數(shù)中被右移出遠(yuǎn)路徑加法器26的范圍的所有低階位執(zhí)行邏輯0R。使用這種邏輯OR方法的問(wèn)題是它引入了不利的額外延遲時(shí)間。圖6的電路采用了不同的方法。指數(shù)差值計(jì)算電路28確定相應(yīng)的輸入加數(shù)A,B的兩個(gè)指數(shù)值之間的差值。這作為輸入被提供給第二加數(shù)移位器電路24以控制被應(yīng)用于較小輸入加數(shù)的尾數(shù)的右移量,如上所述。指數(shù)值的差值(Ea-Eb)也被提供作為后綴值30,該后綴值30與輸入加數(shù)中較小加數(shù)的右移后的尾數(shù)串接。一個(gè)填充位PB被插入到移位后的尾數(shù)32和指數(shù)差值(Ea-Eb)之間。第二加數(shù)移位器電路24將在B路徑上遠(yuǎn)路徑加法器26的輸入的最高有效的(Ea-Eb)位填充零值32。因而,在B路徑上被提供給遠(yuǎn)路徑加法器26的第二加數(shù)被形成為輸入尾數(shù)B去掉其(Ea-Eb)個(gè)最低有效位再與一個(gè)填充位和后綴值以及由第二加數(shù)移位器電路24插入的零前綴值串接,所述后綴值表示由指數(shù)差值計(jì)算電路28計(jì)算的指數(shù)差值。與第二加數(shù)移位器電路24的操作并行地,附加電路33對(duì)B路徑的尾數(shù)Mb附加兩個(gè)零。尾隨零計(jì)數(shù)電路34從B路徑接收具有兩個(gè)附加零位的輸入尾數(shù)值,并對(duì)尾隨零的數(shù)目進(jìn)行計(jì)數(shù)(即,對(duì)從具有兩個(gè)附加零的尾數(shù)值的算術(shù)最低有效位端開(kāi)始出現(xiàn)的連續(xù)零的數(shù)目進(jìn)行計(jì)數(shù))。然后,該尾隨零值(TZ+2)在與三個(gè)填充位以及沿A路徑提供的尾數(shù)值Ma串接之前被進(jìn)行NOT操作以形成A路徑的尾數(shù)Ma的后綴。來(lái)自A路徑的尾數(shù)Ma加上三個(gè)填充位后接NOT (TZ)的后綴用作遠(yuǎn)路徑加法器26的第一加數(shù)。遠(yuǎn)路徑加法器26將包括它們的后綴值的第一加數(shù)和第二加數(shù)相加以產(chǎn)生結(jié)果尾數(shù)值凡。與兩個(gè)后綴字段(Ea-Eb)和NOT (TZ)相加的結(jié)果產(chǎn)生進(jìn)位,該進(jìn)位與根據(jù)之前的技術(shù)所計(jì)算的粘滯位相同。因此,由后綴值的相加所產(chǎn)生的這個(gè)進(jìn)位可以沿進(jìn)位通路被饋送到結(jié)果尾數(shù)的最低位的位置并且用于在執(zhí)行舍入到最近值時(shí)實(shí)現(xiàn)必要的舍入。填充位所具有的值使得當(dāng)這些值被求和時(shí)產(chǎn)生對(duì)應(yīng)于輸出尾數(shù)值的最低精度單位的一半的結(jié)果?;蛘哌@種半U(xiǎn)LP值可以被單獨(dú)添加到尾數(shù)總和。為了處理舍入到偶數(shù)的需求,如果保護(hù)位、舍入位和粘滯位都為零,則尾數(shù)結(jié)果的最低有效位通過(guò)比較器27和多路選擇器31的操作被設(shè)為零。應(yīng)當(dāng)理解兩個(gè)后綴值可以以任一方式應(yīng)用于路徑A和B,即NOT(TZ)可以是路徑B中的后綴,(Ea-Eb)可以是路徑A上的后綴。此外,后綴值也可以是T2和NOT(Ea-Eb)。所有這些可能性都被包括在本發(fā)明的技術(shù)中。這些技術(shù)工作在通過(guò)遠(yuǎn)路徑加法器26相加的值的長(zhǎng)度增加不超過(guò)2的乘冪邊界時(shí)。這等同于如下條件Ma的位長(zhǎng)大于或等于2X,其中X是正整數(shù),并且第一加數(shù)的位長(zhǎng)小
于 2(x+1)。應(yīng)當(dāng)理解遠(yuǎn)路徑加法器電路18通常包括很多其它處理元件。這些處理元件例如可以負(fù)責(zé)符號(hào)位的處理,結(jié)果指數(shù)值的生成,為了執(zhí)行減法而對(duì)尾數(shù)值中的一個(gè)進(jìn)行的反相,以及本領(lǐng)域技術(shù)人員所熟知的其它處理需求。包括這些附加元件的電路被包括在本發(fā)明的技術(shù)中。考慮以下簡(jiǎn)化示例Ma = I. 01010, Ea = 5Mb = I. 10100,Eb = 2Mb有兩個(gè)尾隨零,但是通過(guò)填充Mb得到了 4個(gè)尾隨零。 現(xiàn)在,執(zhí)行右移和加法I. 01010_00_0_011//Ma加上三個(gè)填充零,然后是移位量。+0. 00110_10_0_011//Mb被右移三位,保持移位后的尾數(shù)的2個(gè)最低有效位,后接一個(gè)填充位再后接NOT (TZ+2)+0. 00000_10_0_000//ULP 的一半-----------------------------------------+1. 10001_00_0_110// 中間結(jié)果GRSGRS為全零,所以尾數(shù)結(jié)果的LSB必須被清除+1. 10001 AND NOT LSB = I. 10000 為正確結(jié)果。圖7示意性地圖示了近路徑電路20。當(dāng)輸入加數(shù)具有相同的指數(shù)值或者最多相差I(lǐng)的指數(shù)值時(shí),該近路徑電路20被使用。如果指數(shù)值不同,則該差值通過(guò)指數(shù)差值電路36檢測(cè)到,該指數(shù)差值電路36因此控制尾數(shù)移位電路38將B路徑的輸入加數(shù)右移一位的位置以使有效指數(shù)相等并且對(duì)齊尾數(shù)內(nèi)的小數(shù)點(diǎn)位置。來(lái)自A路徑的尾數(shù)Ma和尾數(shù)Mb(可能被尾數(shù)移位電路38右移)被作為輸入加數(shù)提供給近路徑加法器40。近路徑加法器40生成中間尾數(shù)值M”應(yīng)當(dāng)理解當(dāng)兩個(gè)輸入加數(shù)的量值相似并且減法被執(zhí)行時(shí),結(jié)果浮點(diǎn)數(shù)的量值可能遠(yuǎn)小于兩個(gè)輸入浮點(diǎn)數(shù)。如果輸入浮點(diǎn)數(shù)本身接近于所使用的浮點(diǎn)數(shù)格式可能支持的最小值,則有可能生成非正規(guī)結(jié)果浮點(diǎn)數(shù)。前導(dǎo)零計(jì)數(shù)電路42用于對(duì)中間尾數(shù)值中的前導(dǎo)零的數(shù)目(從尾數(shù)的算術(shù)最高有效位端開(kāi)始的連續(xù)零值的數(shù)目)進(jìn)行計(jì)數(shù),以使得中間尾數(shù)值可被左移以盡可能產(chǎn)生正常浮點(diǎn)數(shù)。然而,如果這種減法的輸入的指數(shù)值很小,或者輸入碰巧非常近似使得差值很小,則可能會(huì)出現(xiàn)左移由前導(dǎo)零計(jì)數(shù)電路42所計(jì)數(shù)的前導(dǎo)零值LZ的完整量會(huì)導(dǎo)致無(wú)效指數(shù)值,該指數(shù)值太小以至于不能用所考慮的浮點(diǎn)數(shù)格式正確表示。具體而言,如果指數(shù)值字段的最小允許值為零并且如果由前導(dǎo)零計(jì)數(shù)值LZ指示的左移指示指數(shù)字段值應(yīng)當(dāng)為負(fù)值(在形式上應(yīng)用-15的偏移),則該指數(shù)值不能被正確表示??梢栽谶@些結(jié)果值被生成之后嘗試捕獲它們,但是這種機(jī)制需要在結(jié)果被生成之后(即,在被接收中間尾數(shù)值的結(jié)果移位電路44進(jìn)行了左移之后)對(duì)結(jié)果進(jìn)行檢查,所以通常會(huì)增加延遲時(shí)間。結(jié)果移位電路44是可被用于首先應(yīng)用較大位移之后再應(yīng)用較小位移的對(duì)數(shù)移位器。本發(fā)明的近路徑電路20包括最小值電路46,該最小值電路46接收較大輸入加數(shù)的指數(shù)值Ea以及前導(dǎo)零值LZ作為輸入。最小值電路產(chǎn)生結(jié)果移位值,指定要由結(jié)果移位電路44產(chǎn)生的左移位數(shù)。該結(jié)果移位值基于輸入LZ和Ea被確定。圖7中所示的是利用生成結(jié)果移位值的這兩個(gè)輸入LZ和Ea執(zhí)行的算術(shù)和邏輯操作。具體而言,如果最小值電路46具有兩個(gè)輸入LZ和Ea,則該電路被配置為通過(guò)確定長(zhǎng)度為21 (從i = O開(kāi)始)的所述結(jié)果移位值的一系列前綴部分Pi為以下值來(lái)確定結(jié)果移位值Pi = (LZi AND NOT GRi)0R(EAi AND GRi),其中LZi為長(zhǎng)度為21的LZ的前綴部分;Em為長(zhǎng)度為21的Ea的前綴部分;對(duì)于i = O和有效位遞減的每個(gè)位位置k,EQi [k] = NOT (LZ [k] XOR Ea[k]);對(duì)于i = 0和有效位遞減的每個(gè)位位置k,當(dāng)LZ[k] > Ea[k]時(shí)GRi[k] = I,當(dāng)LZ [k] ( Ea [k]時(shí) GRiM = O ;對(duì)于i > O和有效位遞減的每個(gè)位位置k,EQi [k] = EQhMAND EQi^1 [k+2(i^];以及對(duì)于i > O和有效位遞減的每個(gè)位位置k,GRi [k] = GRp1M OR (Ep1MANDGRhM(H)])。對(duì)結(jié)果移位值的這種評(píng)估使得結(jié)果移位值的高階位在結(jié)果移位值的低階位之前可用。因此,結(jié)果移位值的這些高階位可以被提供給結(jié)果移位電路44以在結(jié)果移位值的低階位可用之前控制其高階移位。這允許最小值電路46的評(píng)估至少部分地與結(jié)果移位電路44的操作并行執(zhí)行。這減少 了通過(guò)近路徑電路20的延遲時(shí)間。最小值電路首先傳送最高位。該電路按如下方式工作*對(duì)于兩個(gè)輸入值LZ和Ea中的每個(gè)位位置,確定兩個(gè)位‘EQ’和‘GR’ ; ‘EQ’對(duì)應(yīng)于來(lái)自LZ的位等于來(lái)自輸入Ea的位的情況;位‘GR’對(duì)應(yīng)于來(lái)自LZ的位大于來(lái)自輸入Ea的位。*基于針對(duì)每個(gè)位位置的‘EQ’和‘GR’位EQ[k]和GR[k],可以通過(guò)按如下方式合并‘EQ’和‘GR’位來(lái)計(jì)算針對(duì)任意2位序列的‘EQ’和‘GR’位*EQ—combined = EQ—high AND EQ—low*GR—combined = GR—high OR(EQ—high AND GR—low)*根據(jù)針對(duì)任意2位序列的‘EQ’和‘GR’位,可以將來(lái)自相鄰2位序列的‘EQ’和‘GR’位合并以計(jì)算針對(duì)每個(gè)4位序列的‘EQ’和‘GR’位。*然后,對(duì)相鄰4位序列重復(fù)該合并過(guò)程以形成針對(duì)每個(gè)8位序列的‘EQ’和‘GR’,對(duì)相鄰8位序列重復(fù)該合并過(guò)程以形成針對(duì)16位的‘EQ’和‘GR’,等等。最后,針對(duì)每個(gè)位位置確定‘GR’值;該GR位可被用于選擇LZ和Ea的最小值min(LZ,EA) = (LZ AND NOT GR) OR (Ea AND GR)這樣不會(huì)自己首先提供最高位。然而,對(duì)于最小值函數(shù),如果我們定義了只返回其輸入的特定數(shù)目的高階位的函數(shù)prefixO ,則存在關(guān)系prefix(min(a, b))=min (prefix(a), prefix(b));(例如,如果前綴函數(shù)返回最高4位,a= 01011100并且b = 10101111,則min (a,b) = 01011100, prefix (a) = 0101, prefix (b) = 1010, prefix (min (a, b)) = 0101 并且min (prefix (a), prefix (b)) = 0101),所述關(guān)系成立)
不管prefix ()函數(shù)返回多少位,所述關(guān)系都成立。該關(guān)系可以按以下方式結(jié)合‘EQ’和‘GR’位被使用*因?yàn)長(zhǎng)Z和Ea的最聞位是LZ和Ea的I位如綴,所以可以利用針對(duì)最聞位的‘GR’位來(lái)正確地確定最小值結(jié)果的最高位。*類似地,對(duì)于最高2位,可以利用針對(duì)最高2位序列的‘GR’位來(lái)正確地確定最小值結(jié)果的最高2位。*對(duì)于最高4位,可以利用針對(duì)最高4位序列的‘GR’位來(lái)正確地確定最小值結(jié)果的最聞4位。 *對(duì)于8,16,32位等等,可以類推。按照這種方式,正確的最小值位可以用最高位優(yōu)先的方式被得到。在以下示例中,有位串LZ = 01010111和Ea = 01010101,嘗試計(jì)算X = min(LZ,Ea)*首先,計(jì)算針對(duì)每個(gè)位位置的‘EQ’和‘GR’位;該計(jì)算給出EQ = 11111101和GR=00000010。*此時(shí),針對(duì)最高位的‘GR’為'O',所以X的最高位被計(jì)算為(LZ AND NOT GR)OR(Ea AND GR),得到'O'。*接下來(lái),針對(duì)相鄰位位置合并‘EQ’和‘GR’位;得到EQ = 1111100和GR =0000011。*此時(shí),針對(duì)最高2位序列的‘GR’為'Of,所以最高兩位可被計(jì)算為(LZ AND NOTGR)OR(Ea AND GR),得到'0Γ。(當(dāng)然,此時(shí)計(jì)算最高位是多余的,因?yàn)橹耙呀?jīng)計(jì)算過(guò)了。)*接下來(lái),針對(duì)相鄰2位位置合并‘EQ’和‘GR’位;得到EQ= 11100和GR = 00011。*此時(shí),針對(duì)最聞4位序列的‘GR’為1 O ',所以最聞四位可被計(jì)算為(LZ ANDNOT GR) OR(Ea AND GR),得到'0101'。(此時(shí)計(jì)算最高兩位是多余的,因?yàn)橹耙呀?jīng)計(jì)算過(guò)了。)*接下來(lái),針對(duì)相鄰4位位置合并‘EQ’和‘GR’位;得到針對(duì)整個(gè)數(shù)的最終的‘EQ’和 ‘GR’ 值‘EQ,= O, ‘GR,= I。*此時(shí),針對(duì)整個(gè)8位數(shù)的‘GR’為'Γ,所以最高八位可被計(jì)算為(LZAND NOTGR)OR(EaAND GR),得到'01010101'。(當(dāng)然,此時(shí)計(jì)算最高四位是多余的,因?yàn)橹耙呀?jīng)計(jì)算過(guò)了。)注意針對(duì)I位、2位和4位前綴的結(jié)果是怎樣早于針對(duì)整個(gè)8位數(shù)的結(jié)果被得到的。如前所述,近路徑被用于處理發(fā)生抵消的情況(A和B的浮點(diǎn)相加,其中A非常接近于-B);在這種情況下,需要執(zhí)行左移來(lái)規(guī)范化結(jié)果浮點(diǎn)數(shù)的尾數(shù)。然而,抵消可能會(huì)導(dǎo)致浮點(diǎn)數(shù)非常小以至于變成了非正規(guī)數(shù);在這種情況下,必須限制所執(zhí)行的左移。通過(guò)對(duì)相減后的尾數(shù)執(zhí)行計(jì)數(shù)前導(dǎo)零(CLZ)來(lái)實(shí)現(xiàn)規(guī)范化。為此,在CLZ之前前置單個(gè)'O'位,然后執(zhí)行CLZ操作,然后在CLZ結(jié)果和較大輸入數(shù)的指數(shù)之間執(zhí)行最小值操作,然后將最小值操作的結(jié)果用作移位量來(lái)應(yīng)用于結(jié)果數(shù)。首先考慮其中結(jié)果不是非正規(guī)數(shù)的FP16的示例。
* 假設(shè) A = 0_00111_1100001010 且 B = 1_00111_1000000000*將這兩個(gè)數(shù)分成指數(shù)和尾數(shù)(隱含的I位),得到A_exp = 00111, A_mant =11100001010, B_exp = 00111,B_mant = 1100000000。較大的指數(shù)為 MaxExp = max (A_exp,B_exp) = 00111。然后,在相減之前對(duì)尾數(shù)前置和附加零A_mant = 0_11100001010_0B_mant = 0_11000000000_0然后執(zhí)行實(shí)際的減法Diff = A_mant_B_mant = 0001000010100 對(duì)該結(jié)果執(zhí)行計(jì)數(shù)前導(dǎo)零,得到Cdiff = CLZ (Diff) = 3。然后計(jì)算最小值Lsh = Min(Cdiff,MaxExp) =3。然后執(zhí)行'Lsh'位的左移以得到結(jié)果尾數(shù)值Res_mant = Diff << Lsh= 1000010100000。由于結(jié)果為正常值,所以計(jì)算指數(shù)為Res_exp = MaxExp+1-Cdiff = 00100。然后得到尾數(shù)值,去掉最低兩位。然后組合最后的結(jié)果Res = 0_00100_0000101000 (注意由于尾數(shù)的MSB是隱含的,所以并不實(shí)際出現(xiàn)在結(jié)果中。)然后,考慮第二個(gè)FP16的示例,其中結(jié)果是非正規(guī)數(shù)。* 假設(shè) A = 0_00010_1100001010 且 B = 1_00010_1100000000*將這兩個(gè)數(shù)分成指數(shù)和尾數(shù)(隱含的I位),得到A_exp = 00010, A_mant =11100001010, B_exp = 00010,B_mant = 11100000000。較大的指數(shù)為 MaxExp = max(A_exp, B_exp) = 00010。然后,在相減之前對(duì)尾數(shù)前置和附加零A_mant = 0_11100001010_0B_mant = 0_11100000000_0然后執(zhí)行實(shí)際的減法Diff = A_mant_B_mant = 0000000010100對(duì)該結(jié)果執(zhí)行計(jì)數(shù)前導(dǎo)零,得到Cdiff = CLZ (Diff) = 8。然后計(jì)算最小值Lsh = Min(Cdiff, MaxExp) =2。然后執(zhí)行'Lsh'位的左移以得到結(jié)果尾數(shù)值Res_mant = Diff < < Lsh = 0000001010000。由于結(jié)果為非正規(guī)的,所以指數(shù)為零。同樣得到尾數(shù)值,去掉最低兩位。然后組合最后的結(jié)果=Res =0_00000_0000010100(同樣,尾數(shù)的MSB不出現(xiàn)在最后的結(jié)果中;對(duì)于這種非正規(guī)情況,該MSB為零。)兩個(gè)示例涵蓋了具有相同量值級(jí)別的兩個(gè)輸入;在具有不同量值的兩個(gè)輸入的情況下,量值可以最多相差1(或者系統(tǒng)已使用遠(yuǎn)路徑);在這種情況下,較小數(shù)的尾數(shù)在相減之前將被前置兩個(gè)零位但不附加零位,而較大數(shù)的尾數(shù)將被前置一個(gè)零位并附加一個(gè)零位。注意在正常結(jié)果和非正規(guī)結(jié)果兩種情況下,相加后的結(jié)果尾數(shù)的最低有效的兩位被去掉。對(duì)于將具有相等量值的兩個(gè)數(shù)相減的情況,這兩個(gè)位被確保為0,因?yàn)橐莆涣渴冀K至少為I。對(duì)于將具有不同量值的兩個(gè)數(shù)相減的情況,可能得到為I的移位量,因而在這些位中得到非零數(shù)據(jù);在這種情況下,近路徑產(chǎn)生不正確的結(jié)果,并且要返回的整體加法器結(jié)果必須從遠(yuǎn)路徑獲取。圖7在其右下角的部分圖示了兩個(gè)輸入怎樣可能相減產(chǎn)生中間尾數(shù)值,該中間尾數(shù)值根據(jù)其全部前導(dǎo)零的數(shù)目被左移將產(chǎn)生無(wú)效數(shù),因?yàn)橄鄳?yīng)的指數(shù)將小于可以用所考慮的格式有效表示的最小值。在這種情況下,最小值電路46用于將所應(yīng)用的左移位數(shù)限制為前導(dǎo)零值LZ和較大輸入的指數(shù)EA中的較低值。由最小值電路46確定的結(jié)果移位值與結(jié)果移位電路44的操作并行確定,使得近路徑電路20內(nèi)的延遲時(shí)間減少。圖8示意性地圖示了在浮點(diǎn)加法期間兩個(gè)16位浮點(diǎn)數(shù)內(nèi)的字段與遠(yuǎn)路徑加法器內(nèi)所計(jì)算(或組成)的值之間的關(guān)系。具體而言,在圖8中,在處理級(jí)48中,指數(shù)值的差值被用于形成5位移位值SH。在處理級(jí)50中,尾隨零值(TZ+2)根據(jù)最低量值的輸入尾數(shù)的擴(kuò)展版本(通過(guò)附加兩個(gè)零位)被計(jì)算。在高估的結(jié)果路徑和低估的結(jié)果路徑中,都形成帶后綴的尾數(shù)值,所述后綴分別包括指數(shù)值的差值52和尾隨零計(jì)數(shù)值的NOT值54。具有固定值的附加填充位53被插入到要被相加的尾數(shù)中,如圖8中所示。這些用于將等于尾數(shù)結(jié) 果的最低精度單位(ULP)的一半的值加到總和中。兩個(gè)后綴值52,54相加的結(jié)果是由此生成了代表粘滯位的進(jìn)位,所述粘滯位可以通過(guò)對(duì)在指數(shù)均衡和小數(shù)點(diǎn)對(duì)齊操作期間被右移出有效位范圍的尾數(shù)Mb的位執(zhí)行多位OR操作來(lái)生成。所述進(jìn)位值(替換粘滯位)用于根據(jù)需要通過(guò)尾數(shù)加法向上進(jìn)位以將適當(dāng)?shù)纳崛霊?yīng)用于本領(lǐng)域技術(shù)人員所熟知的最近值舍入模式。圖9與圖8類似,只是圖9對(duì)應(yīng)于減法。在這種情況下,指數(shù)差值(Ea-Eb)被用作一個(gè)后綴56,另一個(gè)后綴用尾隨零值58來(lái)設(shè)置。填充位57具有不同的值以實(shí)現(xiàn)1/2ULP加法。此外,在B路徑上輸入的較低量值的尾數(shù)在被提供給遠(yuǎn)路徑加法26之前被進(jìn)行NOT操作,如字段60所示,使得遠(yuǎn)路徑加法器26的操作為減法而不是加法。粘滯位可以按結(jié)合圖6所述的方式在與所提供的任何主加法器相分離的其自己的浮點(diǎn)運(yùn)算電路中被計(jì)算。當(dāng)某個(gè)非零位被移出主求和計(jì)算時(shí),所述粘滯位指示該非零位被移出主求和計(jì)算。移位量根據(jù)指數(shù)差值Ea-Eb來(lái)計(jì)算(移位量并不總是正好等于該差值,只是利用該差值來(lái)計(jì)算)。如果B加數(shù)中尾隨零的數(shù)目被計(jì)數(shù),則比較移位量和尾隨零計(jì)數(shù)可以指示當(dāng)主求和計(jì)算被執(zhí)行時(shí)是否有任何非零位將被移出(即,可以確定粘滯位是否應(yīng)當(dāng)被設(shè)置)。這可以在B加數(shù)被移位之前被確定。在一些實(shí)施例中,尾隨零計(jì)數(shù)可以在確定哪個(gè)操作數(shù)更大之前針對(duì)兩個(gè)操作數(shù)被執(zhí)行(或者至少開(kāi)始執(zhí)行)。類似地,兩個(gè)移位量Ea-Eb和Eb-Ea可以在確定哪個(gè)操作數(shù)更大之前被計(jì)算(或者至少開(kāi)始計(jì)算)。粘滯位確定電路可以與上述的其它特征組合使用。雖然本發(fā)明的說(shuō)明性實(shí)施例已在這里參考附圖進(jìn)行了詳細(xì)描述,但是應(yīng)當(dāng)理解本發(fā)明并不局限于那些確切的實(shí)施例,本領(lǐng)域技術(shù)人員可以進(jìn)行各種改變和修改而不脫離由所附權(quán)利要求定義的本發(fā)明的范圍和精神。
權(quán)利要求
1.一種浮點(diǎn)加法器電路,用于將第一浮點(diǎn)數(shù)與第二浮點(diǎn)數(shù)相加,所述第一浮點(diǎn)數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點(diǎn)數(shù)具有指數(shù)值Eb和尾數(shù)值Mb,并且Ea大于或等于Eb,所述浮點(diǎn)加法器電路包括 遠(yuǎn)路徑電路,被配置為當(dāng)所述第一浮點(diǎn)數(shù)和所述第二浮點(diǎn)數(shù)匹配至少一個(gè)預(yù)定的遠(yuǎn)路徑條件時(shí)生成結(jié)果浮點(diǎn)值,所述遠(yuǎn)路徑電路具有 尾隨零計(jì)數(shù)電路,被配置為確定與在從Mb的最低有效位端開(kāi)始Mb的最低有效(Ea-Eb)位內(nèi)的尾隨零值的游程相對(duì)應(yīng)的尾隨零值TZ ;以及 遠(yuǎn)路徑加法器,被配置為將第一加數(shù)值與第二加數(shù)值相加,所述第一加數(shù)值包括Ma與第一后綴值串接,所述第二加數(shù)值包括不帶其(Ea-Eb)最低有效位的Mb與第二后綴值串接;其中 所述第一后綴值和所述第二后綴值依賴于TZ和(Ea-Eb)中相應(yīng)的一個(gè)而形成。
2.根據(jù)權(quán)利要求I所述的浮點(diǎn)加法器電路,其中,所述第一后綴值和所述第二后綴值依賴于TZ和NOT ( (Ea-Eb))中相應(yīng)的一個(gè)而形成。
3.根據(jù)權(quán)利要求2所述的浮點(diǎn)加法器電路,其中,所述第一后綴值包括三個(gè)填充位后接第一后綴結(jié)尾值,所述第二后綴值包括一個(gè)填充位后接第二后綴結(jié)尾值,所述第一后綴結(jié)尾值和所述第二后綴結(jié)尾值包括(TZ+2)和NOT ((Ea-Eb))中相應(yīng)的值。
4.根據(jù)權(quán)利要求3所述的浮點(diǎn)加法器電路,其中,所述三個(gè)填充位和所述一個(gè)填充位總和為與所述遠(yuǎn)路徑加法器的輸出中的最低精度單位的一半相對(duì)應(yīng)的值。
5.根據(jù)權(quán)利要求I所述的浮點(diǎn)加法器電路,其中,所述第一后綴值和所述第二后綴值依賴于NOT(TZ)和(Ea-Eb)中相應(yīng)的一個(gè)值而形成。
6.根據(jù)權(quán)利要求5所述的浮點(diǎn)加法器電路,其中,所述第一后綴值包括三個(gè)填充位后接第一后綴結(jié)尾值,所述第二后綴值包括一個(gè)填充位后接第二后綴結(jié)尾值,所述第一后綴結(jié)尾值和所述第二后綴結(jié)尾值包括NOT (TZ+2)和(Ea-Eb)中相應(yīng)的值。
7.根據(jù)權(quán)利要求6所述的浮點(diǎn)加法器電路,其中,所述三個(gè)填充位和所述一個(gè)填充位總和為與所述遠(yuǎn)路徑加法器的輸出中的最低精度單位的一半相對(duì)應(yīng)的值。
8.根據(jù)權(quán)利要求I所述的浮點(diǎn)加法器電路,其中,所述第二加數(shù)具有(Ea-Eb)個(gè)零值的前綴。
9.根據(jù)權(quán)利要求I所述的浮點(diǎn)加法器電路,其中,所述遠(yuǎn)路徑電路具有第二加數(shù)移位器電路,所述第二加數(shù)移位器電路被配置為與所述尾隨零計(jì)數(shù)電路并行操作,所述第二加數(shù)移位器電路將MB邏輯右移(Ea-Eb)位的位置。
10.根據(jù)權(quán)利要求9所述的浮點(diǎn)加法器電路,其中,所述第二加數(shù)移位器電路在所述第二加數(shù)值的最高有效的(Ea-Eb)位的位置中提供前導(dǎo)零值。
11.根據(jù)權(quán)利要求I所述的浮點(diǎn)加法器電路,其中,所述遠(yuǎn)路徑電路具有被配置為與所述尾隨零計(jì)數(shù)電路并行操作的指數(shù)差值計(jì)算電路,所述指數(shù)差值計(jì)算電路計(jì)算(Ea-Eb)的值。
12.根據(jù)權(quán)利要求I所述的浮點(diǎn)加法器電路,其中,Ma的位長(zhǎng)大于或等于2X,其中X是正整數(shù),并且所述第一加數(shù)的位長(zhǎng)小于2_。
13.根據(jù)權(quán)利要求I所述的浮點(diǎn)加法器電路,其中,第一輸入加數(shù)和第二輸入加數(shù)被接收,并且所述浮點(diǎn)加法器電路包括復(fù)制電路和多路選擇器,所述復(fù)制電路被配置為形成假設(shè)所述第一輸入加數(shù)大于所述第二輸入加數(shù)的第一處理路徑以及假設(shè)所述第二輸入加數(shù)大于所述第一輸入加數(shù)的第二處理路徑,所述多路選擇器用于當(dāng)在加法處理已經(jīng)在所述復(fù)制路徑中至少部分完成之后確定了所述第一輸入加數(shù)和所述第二輸入加數(shù)中哪個(gè)更大后,選擇來(lái)自所述第一處理路徑和所述第二處理路徑之一的結(jié)果。
14.根據(jù)權(quán)利要求I所述的浮點(diǎn)加法器電路,其中,第一輸入加數(shù)和第二輸入加數(shù)被接收,并且所述浮點(diǎn)加法器電路包括比較電路和切換電路,所述比較電路被配置為執(zhí)行對(duì)所述第一輸入加數(shù)和所述第二輸入加數(shù)的比較以確定哪個(gè)更大,所述切換電路被配置為在所述第一輸入加數(shù)和所述第二輸入加數(shù)的相加開(kāi)始之前,將所述第一輸入加數(shù)和所述第二輸入加數(shù)的路徑切換為根據(jù)所述比較確定的路徑。
15.根據(jù)權(quán)利要求I所述的浮點(diǎn)加法器電路,其中,所述遠(yuǎn)路徑電路具有反相電路,該反相電路被配置為在所述加法器電路將所述第一加數(shù)和所述第二加數(shù)相加之前對(duì)Mb內(nèi)的位進(jìn)行反相,以使得從所述第一浮點(diǎn)值減去所述第二浮點(diǎn)值。
16.根據(jù)權(quán)利要求I所述的浮點(diǎn)加法器電路,所述浮點(diǎn)加法器電路包括 近路徑電路,被配置為當(dāng)所述第一浮點(diǎn)數(shù)和所述第二浮點(diǎn)數(shù)匹配至少一個(gè)預(yù)定的近路徑條件時(shí)生成結(jié)果浮點(diǎn)值,所述近路徑電路具有 近路徑加法器,被配置為確定與(Ma-Mb)相對(duì)應(yīng)的中間尾數(shù)值M1; 前導(dǎo)零計(jì)數(shù)電路,被配置為確定與在從%的最高有效位端開(kāi)始M1內(nèi)的前導(dǎo)零值的游程相對(duì)應(yīng)的前導(dǎo)零值LZ ; 最小值電路,被配置為將結(jié)果移位值確定為L(zhǎng)Z和Ea中較低的值;以及 結(jié)果移位電路,被配置為將M1左移與所述結(jié)果移位值相對(duì)應(yīng)的多個(gè)位的位置以生成構(gòu)成結(jié)果浮點(diǎn)數(shù)的一部分的結(jié)果尾數(shù)Μκ。
17.根據(jù)權(quán)利要求16所述的浮點(diǎn)加法器電路,其中,所述近路徑電路具有尾數(shù)移位電路,所述尾數(shù)移位電路被配置為如果Ea不等于Eb則在Mb被輸入到所述近路徑加法器之前對(duì)隊(duì)執(zhí)行(Ea-Eb)位位置的右移。
18.根據(jù)權(quán)利要求16所述的浮點(diǎn)加法器電路,其中,所述最小值電路被配置為在所述結(jié)果移位值的一個(gè)或多個(gè)低階位之前生成所述結(jié)果移位值的一個(gè)或多個(gè)高階位。
19.根據(jù)權(quán)利要求18所述的浮點(diǎn)加法器電路,其中,所述結(jié)果移位電路是被配置為將M1右移由所述結(jié)果移位量給定的多個(gè)位位置的對(duì)數(shù)移位器,所述對(duì)數(shù)移位電路被配置為在所述一個(gè)或多個(gè)低階位已被所述最小值電路生成之前開(kāi)始任何取決于所述一個(gè)或多個(gè)高階位的左移。
20.根據(jù)權(quán)利要求16的浮點(diǎn)加法器電路,其中,所述最小值電路具有與LZ和Ea相對(duì)應(yīng)的兩個(gè)輸入P和Q,并且通過(guò)將長(zhǎng)度為21的所述結(jié)果移位值的一系列前綴部分Pi,從i = O開(kāi)始,確定為以下值來(lái)確定所述結(jié)果移位值Pi = (LZi AND NOT GRi)0R(EAi AND GRi),其中 LZi為長(zhǎng)度為21的LZ的前綴部分; Em為長(zhǎng)度為21的Ea的前綴部分; 對(duì)于i = O和有效位遞減的每個(gè)位位置k,EQi [k]為NOT (LZ [k] XOREa [k]); 對(duì)于i =0和有效位遞減的每個(gè)位位置k,當(dāng)LZ[k] >EA[k]時(shí)GRiM = 1,并且當(dāng)LZ [k] ( Ea [k]時(shí) GRiM = O ;對(duì)于i > O和有效位遞減的每個(gè)位位置k,EQi [k] = EQh [k] AND EQi^1 [k+2];以及對(duì)于i > O和有效位遞減的每個(gè)位位置k,GRi [k] = GRiJk] OR (Ep1MANDGRhM(H)])。
21.根據(jù)權(quán)利要求16所述的浮點(diǎn)加法器電路,其中,所述近路徑預(yù)定量為I。
22.根據(jù)權(quán)利要求16所述的浮點(diǎn)加法器電路,其中,所述最小值電路約束所述結(jié)果移位值以使得所述結(jié)果浮點(diǎn)數(shù)為有效的非正規(guī)浮點(diǎn)數(shù)。
23.一種浮點(diǎn)加法器電路,用于從第一浮點(diǎn)數(shù)減去第二浮點(diǎn)數(shù),所述第一浮點(diǎn)數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點(diǎn)數(shù)具有指數(shù)值Eb和尾數(shù)值Mb,并且Ea大于或等于Eb,所述浮點(diǎn)加法器電路包括 近路徑電路,被配置為當(dāng)(Ea-Eb)小于近路徑預(yù)定量時(shí)生成結(jié)果浮點(diǎn)值,所述近路徑電路具有 近路徑加法器,被配置為確定與(Ma-Mb)相對(duì)應(yīng)的中間尾數(shù)值M1; 前導(dǎo)零計(jì)數(shù)電路,被配置為確定與在從%的最高有效位端開(kāi)始M1內(nèi)的前導(dǎo)零值的游程相對(duì)應(yīng)的前導(dǎo)零值LZ ; 最小值電路,被配置為將結(jié)果移位值確定為L(zhǎng)Z和Ea中較低的值;以及結(jié)果移位電路,被配置為將M1左移與所述結(jié)果移位值相對(duì)應(yīng)的多個(gè)位的位置以生成構(gòu)成結(jié)果浮點(diǎn)數(shù)的一部分的結(jié)果尾數(shù)Μκ。
24.根據(jù)權(quán)利要求23所述的浮點(diǎn)加法器電路,其中,所述近路徑電路具有尾數(shù)移位電路,所述尾數(shù)移位電路被配置為如果Ea不等于Eb則在Mb被輸入到所述近路徑加法器之前對(duì)隊(duì)執(zhí)行(Ea-Eb)位位置的右移。
25.根據(jù)權(quán)利要求23所述的浮點(diǎn)加法器電路,其中,所述最小值電路被配置為在所述結(jié)果移位值的一個(gè)或多個(gè)低階位之前生成所述結(jié)果移位值的一個(gè)或多個(gè)高階位。
26.根據(jù)權(quán)利要求25所述的浮點(diǎn)加法器電路,其中,所述結(jié)果移位電路是被配置為將M1右移由所述結(jié)果移位量給定的多個(gè)位位置的對(duì)數(shù)移位器,所述對(duì)數(shù)移位電路被配置為在所述一個(gè)或多個(gè)低階位已被所述最小值電路生成之前開(kāi)始任意取決于所述一個(gè)或多個(gè)高階位的左移。
27.根據(jù)權(quán)利要求23的浮點(diǎn)加法器電路,其中,所述最小值電路具有與LZ和EA相對(duì)應(yīng)的兩個(gè)輸入P和Q,并且通過(guò)將長(zhǎng)度為21的所述結(jié)果移位值的一系列前綴部分Pi,從i = O開(kāi)始,確定為以下值來(lái)確定所述結(jié)果移位值Pi = (LZi AND NOT GRi)0R(EAi AND GRi),其中LZi是長(zhǎng)度為21的LZ的前綴部分; Em是長(zhǎng)度為21的Ea的前綴部分; 對(duì)于i = O和有效位遞減的每個(gè)位位置k,EQi [k]為NOT (LZ [k] XOREa [k]); 對(duì)于i =0和有效位遞減的每個(gè)位位置k,當(dāng)LZ[k] >EA[k]時(shí)GRiM = I并且當(dāng)LZ [k] ( Ea [k]時(shí) GRiM = O ; 對(duì)于i > O和有效位遞減的每個(gè)位位置k,EQi [k] = EQh [k] AND EQi^1 [k+2a^];以及對(duì)于i > 0和有效位遞減的每個(gè)位位置k,GRi [k] = GRiJk] OR (Ep1MANDGRhM(H)])。
28.根據(jù)權(quán)利要求23所述的浮點(diǎn)加法器電路,其中,所述近路徑預(yù)定量為I。
29.根據(jù)權(quán)利要求23所述的浮點(diǎn)加法器電路,其中,所述最小值電路約束所述結(jié)果移位值以使得所述結(jié)果浮點(diǎn)數(shù)為有效的非正規(guī)浮點(diǎn)數(shù)。
30.一種浮點(diǎn)加法器電路,用于將第一浮點(diǎn)數(shù)與第二浮點(diǎn)數(shù)相加,所述第一浮點(diǎn)數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點(diǎn)數(shù)具有指數(shù)值Eb和尾數(shù)值Mb,并且Ea大于或等于Eb,所述浮點(diǎn)加法器電路包括 遠(yuǎn)路徑裝置,被配置為當(dāng)所述第一浮點(diǎn)數(shù)和所述第二浮點(diǎn)數(shù)匹配至少一個(gè)預(yù)定的遠(yuǎn)路徑條件時(shí)生成結(jié)果浮點(diǎn)值,所述遠(yuǎn)路徑裝置具有 尾隨零計(jì)數(shù)裝置,用于確定與在從Mb的最低有效位端開(kāi)始Mb的最低有效(Ea-Eb)位內(nèi)的尾隨零值的游程相對(duì)應(yīng)的尾隨零值TZ ;以及 遠(yuǎn)路徑加法器裝置,用于將第一加數(shù)值與第二加數(shù)值相加,所述第一加數(shù)值包括Ma與第一后綴值串接,所述第二加數(shù)值包括不帶其(Ea-Eb)最低有效位的Mb與第二后綴值串接;其中 所述第一后綴值和所述第二后綴值依賴于TZ和(Ea-Eb)中相應(yīng)的一個(gè)而形成。
31.一種浮點(diǎn)加法器電路,用于從第一浮點(diǎn)數(shù)減去第二浮點(diǎn)數(shù),所述第一浮點(diǎn)數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點(diǎn)數(shù)具有指數(shù)值Eb和尾數(shù)值Mb,并且Ea大于或等于Eb,所述浮點(diǎn)加法器電路包括 近路徑裝置,用于當(dāng)所述第一浮點(diǎn)數(shù)和所述第二浮點(diǎn)數(shù)匹配至少一個(gè)預(yù)定的近路徑條件時(shí)生成結(jié)果浮點(diǎn)值,所述近路徑裝置具有 近路徑加法器裝置,用于確定與(Ma-Mb)相對(duì)應(yīng)的中間尾數(shù)值M1; 前導(dǎo)零計(jì)數(shù)裝置,用于確定與在從M1的最高有效位端開(kāi)始M1內(nèi)的前導(dǎo)零值的游程相對(duì)應(yīng)的前導(dǎo)零值LZ ; 最小值裝置,用于將結(jié)果移位值確定為L(zhǎng)Z和Ea中較低的值;以及結(jié)果移位裝置,用于將M1移動(dòng)與所述結(jié)果移位值相對(duì)應(yīng)的多個(gè)位的位置以生成構(gòu)成結(jié)果浮點(diǎn)數(shù)的一部分的結(jié)果尾數(shù)Μκ。
32.—種將第一浮點(diǎn)數(shù)和第二浮點(diǎn)數(shù)相加的方法,所述第一浮點(diǎn)數(shù)具有指數(shù)值Ea和尾數(shù)值所述第二浮點(diǎn)數(shù)具有指數(shù)值Eb和尾數(shù)值Mb,并且Ea大于或等于Eb,所述方法包括當(dāng)所述第一浮點(diǎn)數(shù)和所述第二浮點(diǎn)數(shù)匹配至少一個(gè)預(yù)定的遠(yuǎn)路徑條件時(shí) 確定與在從Mb的最低有效位端開(kāi)始Mb的最低有效(Ea-Eb)位內(nèi)的尾隨零值的游程相對(duì)應(yīng)的尾隨零值TZ ;以及 將第一加數(shù)值與第二加數(shù)值相加,所述第一加數(shù)值包括Ma與第一后綴值串接,所述第二加數(shù)值包括不帶其(Ea-Eb)最低有效位的Mb與第二后綴值串接;其中 所述第一后綴值和所述第二后綴值依賴于TZ和(Ea-Eb)中相應(yīng)的一個(gè)而形成。
33.一種從第一浮點(diǎn)數(shù)中減去第二浮點(diǎn)數(shù)的方法,所述第一浮點(diǎn)數(shù)具有指數(shù)值Ea和尾數(shù)值所述第二浮點(diǎn)數(shù)具有指數(shù)值Eb和尾數(shù)值Mb,并且Ea大于或等于Eb,所述方法包括當(dāng)所述第一浮點(diǎn)數(shù)和所述第二浮點(diǎn)數(shù)匹配至少一個(gè)預(yù)定近路徑條件時(shí) 確定與(Ma-Mb)相對(duì)應(yīng)的中間尾數(shù)值M1 ; 確定與在從M1的最高有效位端開(kāi)始M1內(nèi)的前導(dǎo)零值的游程相對(duì)應(yīng)的前導(dǎo)零值LZ ; 將結(jié)果移位值確定為L(zhǎng)Z和Ea中較低的值;以及 將M1移動(dòng)與所述結(jié)果移位值相對(duì)應(yīng)的多個(gè)位的位置以生成構(gòu)成結(jié)果浮點(diǎn)數(shù)的一部分的結(jié)果尾數(shù)Μκ。
34.一種用于確定將第一浮點(diǎn)數(shù)和第二浮點(diǎn)數(shù)相加時(shí)所使用的粘滯位的浮點(diǎn)運(yùn)算電路,所述第一浮點(diǎn)數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點(diǎn)數(shù)具有指數(shù)值Eb和尾數(shù)值Mb,并且Ea大于或等于Eb,所述浮點(diǎn)運(yùn)算電路包括 移位量確定電路,被配置為確定取決于(Ea-Eb)的移位量,所述移位量對(duì)應(yīng)于要被應(yīng)用于Mb以形成要與Ma相加的Mb的移位后版本的右移; 尾隨零計(jì)數(shù)電路,被配置為確定與在WMb的最低有效位端開(kāi)始Mb的尾隨零值的游程相 對(duì)應(yīng)的尾隨零值;以及 粘滯位值確定電路,被配置為將所述移位量與所述尾隨零值進(jìn)行比較以確定所述粘滯位的值,所述粘滯位指示是否有任何非零位將從要與Ma相加的所述Mb的移位后版本中被移出。
35.根據(jù)權(quán)利要求34所述的浮點(diǎn)運(yùn)算電路,包括用于確定Ea大于Eb的指數(shù)比較電路。
36.根據(jù)權(quán)利要求35所述的浮點(diǎn)運(yùn)算電路,其中,所述移位量確定電路被配置為在所述指數(shù)比較電路已確定Ea大于Eb之前確定取決于(Eb-Ea)的另一移位量。
37.根據(jù)權(quán)利要求35所述的浮點(diǎn)運(yùn)算電路,其中,所述尾隨零計(jì)數(shù)電路被配置為確定與從Ma的最低有效位端開(kāi)始Ma的尾隨零值的游程相對(duì)應(yīng)的另一尾隨零值。
38.一種用于確定將第一浮點(diǎn)數(shù)和第二浮點(diǎn)數(shù)相加時(shí)所使用的粘滯位的浮點(diǎn)運(yùn)算電路,所述第一浮點(diǎn)數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點(diǎn)數(shù)具有指數(shù)值Eb和尾數(shù)值Mb,并且Ea大于或等于Eb,所述浮點(diǎn)運(yùn)算電路包括 移位量確定裝置,用于確定取決于(Ea-Eb)的移位量,所述移位量對(duì)應(yīng)于要被應(yīng)用于Mb以形成要與Ma相加的Mb的移位后版本的右移; 尾隨零計(jì)數(shù)裝置,用于確定與在從Mb的最低有效位端開(kāi)始Mb的尾隨零值的游程相對(duì)應(yīng)的尾隨零值;以及 粘滯位值確定裝置,用于將所述移位量與所述尾隨零值進(jìn)行比較以確定所述粘滯位的值,所述粘滯位指示是否有任何非零位將從要與Ma相加的所述Mb的移位后版本中被移出。
39.一種用于確定將第一浮點(diǎn)數(shù)和第二浮點(diǎn)數(shù)相加時(shí)所使用的粘滯位的方法,所述第一浮點(diǎn)數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點(diǎn)數(shù)具有指數(shù)值Eb和尾數(shù)值Mb,并且Ea大于或等于Eb,所述方法包括以下步驟 確定取決于(Ea-Eb)的移位量,所述移位量對(duì)應(yīng)于要被應(yīng)用于Mb以形成要與Ma相加的Mb的移位后版本的右移; 確定與在從Mb的最低有效位端開(kāi)始Mb的尾隨零值的游程相對(duì)應(yīng)的尾隨零值;以及 將所述移位量與所述尾隨零值進(jìn)行比較以確定所述粘滯位的值,所述粘滯位指示是否有任何非零位將從要與Ma相加的所述Mb的移位后版本中被移出。
全文摘要
本公開(kāi)涉及一種浮點(diǎn)加法器。浮點(diǎn)加法器電路16,18,20被提供有遠(yuǎn)路徑電路18和近路徑電路20。遠(yuǎn)路徑電路利用尾隨零TZ的計(jì)數(shù)和輸入操作數(shù)指數(shù)的差值來(lái)形成相應(yīng)的后綴值,該后綴值與輸入加數(shù)的尾數(shù)串接并且當(dāng)被求和時(shí)用于生成代替?zhèn)鹘y(tǒng)被計(jì)算的粘滯位的進(jìn)位。在近路徑內(nèi),最小值電路46被用于計(jì)算在相減中產(chǎn)生的中間尾數(shù)的前導(dǎo)零計(jì)數(shù)與輸入操作數(shù)指數(shù)值的較大值中的較低值,以使得被應(yīng)用于中間尾數(shù)值的左移位不會(huì)由于所應(yīng)用的去除前導(dǎo)零的左移位太大并且因此對(duì)應(yīng)于不能被有效表示的指數(shù),而產(chǎn)生無(wú)效的浮點(diǎn)結(jié)果。
文檔編號(hào)G06F7/485GK102855117SQ20121022970
公開(kāi)日2013年1月2日 申請(qǐng)日期2012年6月29日 優(yōu)先權(quán)日2011年6月29日
發(fā)明者卓恩·尼斯塔德 申請(qǐng)人:Arm有限公司