国产精品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>

      浮點加法器的制作方法

      文檔序號:6372725閱讀:555來源:國知局
      專利名稱:浮點加法器的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)的領(lǐng)域。更具體地,本發(fā)明涉及浮點加法器的領(lǐng)域。
      背景技術(shù)
      在數(shù)據(jù)處理系統(tǒng)中公知了提供可以加和減浮點數(shù)的浮點加法器。這些浮點數(shù)可以包括符號位、指數(shù)字段和尾數(shù)字段。浮點數(shù)格式和浮點算術(shù)操作的例子可以在IEEE 754標準中找到。當相加(或者可以通過與首先經(jīng)過修改的輸入中的一個輸入相加而實現(xiàn)的相減)時,通常在加法被執(zhí)行之前,具有較小指數(shù)的加數(shù)被右移以對齊小數(shù)點的位置。這種對齊將尾數(shù)值的最低有效位移出尾數(shù)結(jié)果的有效位范圍,因此將損失精度。這導致需要對結(jié)果進行適當?shù)乃纳嵛迦?。在浮點算術(shù)中支持各種四舍五入模式。一個四舍五入模式是舍入到最近的偶數(shù)。公知當執(zhí)行這種舍入時,粘滯位應當被確定和保持,所述粘滯位指示當小數(shù)點的位置被對齊時被右移出有效位范圍的任意位是否具有非零值。這個粘滯位通常可以通過對在加數(shù)尾數(shù)對齊期間被移出有效位范圍的所有位執(zhí)行邏輯OR操作來確定。這個方法的問題是OR操作可能是很多位寬的并且在處理路徑中引入不利的延遲度。延遲的增加可能降低可以使用的最大操作時鐘頻率,減小定時馳豫并且具有其它負面后果。
      在浮點加法器領(lǐng)域中,公知提供遠路徑加法器以在操作數(shù)的量值大于預定差值時使用,以及近路徑加法器以在操作數(shù)的量值小于預定差值時使用。

      發(fā)明內(nèi)容
      從一個方面來看,本發(fā)明提供了用于將第一浮點數(shù)與第二浮點數(shù)相加的浮點加法器電路,所述第一浮點數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點數(shù)具有指數(shù)值Eb和尾數(shù)值Mb并且Ea大于或等于Eb,所述浮點加法器電路包括遠路徑電路,被配置為當所述第一浮點數(shù)和第二浮點數(shù)匹配至少一個預定的遠路徑條件時生成結(jié)果浮點值,所述遠路徑電路具有尾隨零計數(shù)電路,被配置為確定與在從Mb的最低有效位端開始Mb的最低有效(Ea-Eb)位內(nèi)的尾隨零值的游程相對應的尾隨零值TZ ;以及遠路徑加法器,被配置為將第一加數(shù)值與第二加數(shù)值相加,所述第一加數(shù)值包括Ma與第一后綴值串接并且所述第二加數(shù)值包括不帶其(Ea-Eb)最低有效位的Mb與第二后綴值串接;其中所述第一后綴值和所述第二后綴值根據(jù)TZ和(Ea-Eb)中相應的一個被形成。本發(fā)明意識到代替通過對被移出到有效位范圍以外的位進行邏輯OR來明顯地計算粘滯位,可以通過根據(jù)取決于被移出位中尾隨零的數(shù)目以及指數(shù)值差值的總和(這些加數(shù)中的一個首先被進行NOT操作)確定進位輸出,從而間接地計算具有相同值的位。尾隨零數(shù)目的計算可以與對較小的加數(shù)進行的右移并行地被執(zhí)行,從而通過加法器電路有效地減小延遲。
      第一后綴值可以包括三個填充位后面跟⑴尾隨零的數(shù)目加二 ;或(ii)指數(shù)值的差值中的一個值,這些值中的一個被進行NOT操作,并且第二后綴值可以包括一個填充位后面跟(i)尾隨零的數(shù)目加二 ;或(ii)指數(shù)值的差值中的另外一個值。所述三個填充位和一個填充位可以被選擇為具有總和為輸出尾數(shù)值中的最低精度單位的一半的值,所述輸出尾數(shù)值由遠路徑加法器根據(jù)浮點數(shù)和的格式所生成。應當理解與要相加的尾數(shù)值串接并且產(chǎn)生與傳統(tǒng)粘滯位等同的進位的后綴值可以利用被進行了 NOT操作的尾隨零計數(shù)或者指數(shù)差值來形成。被右移的第二加數(shù)也將具有零值前綴以將其長度填充為與第一加數(shù)的尾數(shù)相同的長度。 作為前綴被加到第二加數(shù)上的前導零值可以利用第二加數(shù)移位器電路來插入。尾隨零計數(shù)電路可以被配置為與指數(shù)差值計算電路并行操作。指數(shù)差值可被要求與尾隨零計數(shù)進行對比,但是利用該指數(shù)差值有效地為尾隨零計數(shù)設(shè)置最大值,尾隨零計數(shù)操作可以開始于指數(shù)差值已知之前。利用與尾數(shù)串接并通過遠路徑加法器饋送的后綴值來計算與粘滯位具有相同值的位的上述技術(shù)可以在通過遠路徑加法器所饋送的值的長度變化不超過2的位寬次方的邊界時被使用。這個約束條件是由于很多超前進位加法器(例如Sklansky加法器和Kogge-Stone加法器)的工作方式而引起的,如果2的乘冪的邊界被超過時,額外的門延遲將會被引入。其中浮點運算被執(zhí)行的很多實際情況都滿足這個約束條件。應當理解上述的浮點加法機制需要識別哪個輸入加數(shù)具有更大尺寸(至少具有最大指數(shù)值或相等的最大指數(shù)值或相等的最大指數(shù)值)。實現(xiàn)該識別的一個方式是在加法開始之前比較指數(shù)值,然后將輸入加數(shù)切換到適當?shù)穆窂?,匹配用于較大加數(shù)的路徑和用于較小加數(shù)的路徑。這種方法相對來說很少增加門數(shù)目,但是會增大操作的延遲時間。另一種方法是復制加法器電路并基于關(guān)于哪個輸入加數(shù)的尺寸更大的相反假設(shè)通過相應的復制路徑饋送輸入加數(shù)。因此,加法操作可以更快地開始,并且當后來確定了實際上是哪個輸入加數(shù)的尺寸更大(具有大于或等于另一輸入加數(shù)的指數(shù)值的指數(shù)值)時,來自適當?shù)膹椭坡窂降慕Y(jié)果可以被選擇輸出。如上所述,本發(fā)明的加法器電路也可以執(zhí)行減法操作。這可以通過包括反相電路在一些實施例中被實現(xiàn),所述反相電路在第一加數(shù)與第二加數(shù)相加之前對第二加數(shù)的尾數(shù)內(nèi)的位進行反相。本發(fā)明同樣適用于浮點加法和浮點減法。本領(lǐng)域技術(shù)人員將熟知浮點加法器可以包括用于將浮點數(shù)與大于預定界限的差值相加的遠路徑加法器和用于將浮點數(shù)與小于預定界限的差值相加的近路徑加法器。當可能有大量的尾數(shù)位被移出有效位范圍并且需要根據(jù)這些尾數(shù)位計算的粘滯位時,上述確定與用于控制舍入的粘滯位等同的位值的技術(shù)在遠路徑加法器中非常有用。在近路徑加法器中,公知對結(jié)果尾數(shù)內(nèi)的前導零進行計數(shù),然后執(zhí)行適當?shù)囊莆缓椭笖?shù)調(diào)節(jié)來規(guī)范浮點結(jié)果。這種方法的問題在于前導零計數(shù)和要被應用的相關(guān)聯(lián)的后續(xù)左移位可能導致在可被有效地表示的范圍以外的相應指數(shù)值。用于處理該問題的已知技術(shù)通常提供附加電路,用于識別是否有范圍以外的指數(shù)值被產(chǎn)生,然后修復結(jié)果以生成非正規(guī)(denormal)浮點數(shù)。這種方法可能會引起近路徑加法器中延遲的增加。本發(fā)明的另一方面可以單獨使用或者與被應用于遠路徑加法器的上述技術(shù)組合使用,其中最小值電路被提供在近路徑加法器內(nèi)并且用于將結(jié)果被左移的結(jié)果移位值確定為對結(jié)果尾數(shù)執(zhí)行的前導零計數(shù)和較大輸入加數(shù)的指數(shù)值中的較低值(注意,即使是當減法被執(zhí)行時,術(shù)語“加數(shù)”仍然可以被使用)。如果較大加數(shù)的指數(shù)值接近最小值,則該指數(shù)可能低于前導零計數(shù),因此提供關(guān)于要對結(jié)果尾數(shù)執(zhí)行的左移的限制,并且控制左移以使得將得到正確形成的非正規(guī)數(shù),而不需要執(zhí)行增加延遲時間的修補操作。當輸入加數(shù)滿足預定的近路徑條件時,近路徑加法器可以被使用。當輸入加數(shù)的值差別較小時,尾數(shù)移位電路可以被提供以在較小加數(shù)的尾數(shù)被輸入到近路徑加法器之前被將該尾數(shù)右移與指數(shù)差值相等的位數(shù)的位置。最小值電路可以被配置為在結(jié)果移位值的一個或多個低價位被生成之前生成結(jié)果移位值的一個或多個高階位。這是有益的,因為它允許采用對數(shù)移位器的形式的結(jié)果移位電路在完整精度的結(jié)果移位值可用之前開始其對中間尾數(shù)的右移以產(chǎn)生結(jié)果尾數(shù)。這減 小了近路徑的延遲。最小值電路可以具有多種不同的形式并且以各種不同的方式計算最小值。最小值電路操作的一種方式在允許較早的生成結(jié)果移位值的高階位方面被認為是非常方便的,這種方式是當所述最小值電路具有兩個輸入LZ和Ea時,通過按以下方式確定長度為21 (從i=O開始)的所述結(jié)果移位值的一系列前綴部分Pi來確定結(jié)果移位值Pi = (LZi AND NOT GRi)0R(EAi AND GRi),其中LZi為長度為21的LZ的前綴部分;Em為長度為21的Ea的前綴部分;對于i = O和有效位遞減的每個位位置k,EQi [k] = NOT (LZ [k] XOR Ea[k]);對于i = 0和有效位遞減的每個位位置k,當LZ[k] > Ea[k]時GRi[k] = I,當LZ [k] ( Ea [k]時 GRiM = O ;對于i > O和有效位遞減的每個位位置k,EQi [k] = EQhMAND EQi^1 [k+2(i^];以及對于i > O和有效位遞減的每個位位置k,GRi [k] = GRi^1 [k] OR (Ei^1 [k]ANDGRhM(H)])。近路徑可被使用的限制情況是其中近距離預定量為I的情況。當結(jié)果浮點數(shù)為非正規(guī)浮點數(shù)時,該技術(shù)特別有用。從另一方面來看,本發(fā)明提供了一種用于將第一浮點數(shù)減去第二浮點數(shù),所述第一浮點數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點數(shù)具有指數(shù)值Eb和尾數(shù)值Mb并且Ea大于或等于Eb,所述浮點加法器電路包括近路徑電路,被配置為當所述第一浮點數(shù)和所述第二浮點數(shù)匹配至少一個預定的近路徑條件時生成結(jié)果浮點值,所述近路徑電路具有近路徑加法器,被配置為確定與(Ma-Mb)相對應的中間尾數(shù)值M1 ;前導零計數(shù)電路,被配置為確定與在從M1的最高有效位端開始M1內(nèi)的前導零值的游程相對應的前導零值LZ ;最小值電路,被配置為將結(jié)果移位值確定為LZ和Ea中較低的值;以及結(jié)果移位電路,被配置為將M1左移與所述結(jié)果移位值相對應的多個位的位置以生成構(gòu)成結(jié)果浮點數(shù)的一部分的結(jié)果尾數(shù)Μκ。
      應當理解減小近路徑內(nèi)的延遲時間的技術(shù)可以與用于減小遠路徑內(nèi)的延遲時間的技術(shù)互相獨立地被使用。然而,對這些技術(shù)的組合使用是有益的,因為近路徑和遠路徑可以被保持平衡的延遲時間。本發(fā)明的另一方面提供用于確定將第一浮點數(shù)和第二浮點數(shù)相加時所使用的粘滯位的浮點運算電路,所述第一浮點數(shù)具有指數(shù)值Ea和尾數(shù)值Ma,所述第二浮點數(shù)具有指數(shù)值Eb和尾數(shù)值Mb并且Ea大于或等于Eb,所述浮點運算電路包括移位量確定電路,被配置為確定取決于(Ea-Eb)的移位量,所述移位量對應于要被應用于Mb以形成要與Ma相加的Mb的移位后的版本的右移位尾隨零計數(shù)電路,被配置為確定與在從Mb的最低有效位端開始Mb的尾隨零值的游 程相對應的尾隨零值;以及粘滯位值確定電路,被配置為將所述移位量與所述尾隨零值進行比較以確定所述粘滯位的值,所述粘滯位指示是否有任何非零位將從要與Ma相加的所述Mb的移位后版本中被移出。本發(fā)明的其它方面在所附權(quán)利要求中被列出。根據(jù)結(jié)合附圖描述的以下對說明性實施例的詳細描述,本發(fā)明的以上和其它目的、特征和優(yōu)點將變得清楚。


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