專利名稱:浮點運算器及浮點運算的處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及矢量處理器領(lǐng)域,具體而言,涉及一種浮點運算器及浮點運算的處理 方法。
背景技術(shù):
目前通信協(xié)議有多種模式,采用原有的特殊應(yīng)用集成電路(Application Specific Integrated Circuit,簡稱為ASIC)設(shè)計方法來實現(xiàn)多模兼容的移動終端芯片 必然面臨面積大功耗大且缺乏靈活性等等缺點。當前的軟件無線電(software-defined radio,簡稱為SDR)技術(shù)是解決目前多模通信終端芯片設(shè)計問題的極具潛力的技術(shù)??删?程矢量處理器(programmable vector processor)是軟件無線電SDR的核心架構(gòu)。為了支 持多?;鶐У奶幚恚噶刻幚砥鞅仨毮苊棵雸?zhí)行數(shù)G操作。并且作為移動終端需要滿足功 耗在幾百mW左右。浮點運算單元是矢量處理器的核心運算部分,其性能決定了整個處理器的性能, 其功耗也占到處理器近一半的功耗。因此,該浮點計算單元的設(shè)計和實現(xiàn)非常關(guān)鍵。IEEE標準7M浮點數(shù)是廣泛應(yīng)用的浮點格式。IEEE標準7M從邏輯上用三元組 {S,E,M}表示一個數(shù)n,如下所示SEM符號位指數(shù)尾數(shù)最高位... 最低位η = (-l)sXl.mX2e 公式(1)N的實際值η由公式(1)表示。n, s,e,m分別為N,S,E,M對應(yīng)的實際數(shù)值,而N,S,E,M僅僅是一串二進制位。 S (sign)表示N的符號位。對應(yīng)值s滿足n > 0時,s = 0 ;n < 0時,s = 1。E (exponent) 表示N的指數(shù)位,位于S和M之間的若干位。對應(yīng)值e值也可正可負。MOiiantissa)表示N 的尾數(shù)位,恰好,它位于N末尾。有效數(shù)(Significand)為1. m,1為隱含位是多出來的1位 精度。IEEE標準乃4規(guī)定了三種浮點數(shù)格式單精度、雙精度、擴展精度。單精度共 32bit,S、Ε、M 的 bit 數(shù)分別為 1、8、23 ;雙精度共 64bit,S、Ε、M 的 bit 數(shù)分別為 1、11、52。 更多請參考IEEE 7M浮點標準,在此不再贅述。浮點乘加器可以有很多結(jié)構(gòu),可以實現(xiàn)一般乘法、加法、乘加,還可以實現(xiàn)復數(shù)乘 法、加法、乘加,以及特定fft運算。這些都視乘加器的具體結(jié)構(gòu)而定。但是相關(guān)技術(shù)中的 浮點乘加器都難以實現(xiàn)高頻率下的單拍反饋累加,而只能對兩拍前的結(jié)果進行累加,不能 直接和上拍的運算結(jié)果進行累加,即不能完全實現(xiàn)流水累加,造成編程上的不方便和編程 效率的損失。圖1是根據(jù)相關(guān)技術(shù)的傳統(tǒng)浮點加法器的原理框圖,下面結(jié)合圖1對傳統(tǒng)的浮 點加法的步驟進行說明兩輸入浮點數(shù)的指數(shù)相減;浮點數(shù)有效數(shù)移位對齊;有效數(shù)相加;歸一化(包括尾數(shù)取舍(rounding))。這些步驟都是串行的,邏輯很長。為了工作在諸如 400MHz的高頻上,浮點加法器必須分成兩拍,這造成了不能實現(xiàn)單拍累加。浮點加法部分是浮點乘加器中邏輯時延的關(guān)鍵路徑在相關(guān)技術(shù)中采用雙路徑來 提高其工作效率,即near-path和far-path方式實現(xiàn)浮點加法器。雙路徑方法主要是根據(jù)兩浮點數(shù)的指數(shù)差值范圍劃分為兩種情況指數(shù)差< = 1 (near-path)和指數(shù)差>=2 (far-path)。near-path 指數(shù)相減得到簡化(只需要做2比 特的減法),浮點數(shù)有效數(shù)移位對齊簡化。只需要對一個加數(shù)的有效部分預先做左移和右 移動1比特兩種結(jié)果,根據(jù)指數(shù)相減的結(jié)果決定輸出。這樣指數(shù)相減和浮點有效數(shù)移位對 齊時延大大減少。為減少歸一化延時,在進行有效數(shù)部分的加法同時進行前導0的預測。 far-path 由于指數(shù)差>=2,浮點加法后不會產(chǎn)生小于1. 0的數(shù)據(jù),所以最后歸一化步驟 中不需要進行小數(shù)點的左移。這樣兩路徑都分別減少了時延,實現(xiàn)了一般浮點加法步驟的并行化。最后選擇兩 路徑中一個作為輸出結(jié)果。但是雙路徑浮點加法器面積幾乎是原來標準的浮點加法器的兩 倍。但是邏輯延時并沒有減少到原來的一半,實際上減少30%多。在同樣的工作頻率要求 下難以實現(xiàn)單拍加法,也就不能實現(xiàn)單拍反饋累加。.在相關(guān)技術(shù)中的傳統(tǒng)的浮點加法器在高頻下只能與兩拍前即上上次的運算結(jié)果 累加。在軟件編程時,不能流水的實現(xiàn)連續(xù)的累加,必須分成奇數(shù)偶數(shù)部分分別進行累加, 之后用一條特殊指令將奇數(shù)偶數(shù)部分的累加和再次相加。這樣在編程上不是很方便和直 觀,編程效率也大大降低。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種浮點運算器及浮點運算的處理方法,以至少解決 上述問題。根據(jù)本發(fā)明的一個方面,提供了一種浮點運算器,包括浮點轉(zhuǎn)定點模塊,用于將 輸入到所述浮點轉(zhuǎn)定點模塊的浮點數(shù)轉(zhuǎn)換為定點數(shù);所述定點加法模塊,所述定點加法模 塊的輸入端連接至所述浮點轉(zhuǎn)定點模塊的輸出端,所述定點加法模塊的輸出端連接至所述 定點加法模塊的輸入端,用于對所述浮點轉(zhuǎn)定點模塊輸出的定點數(shù)和所述定點加法模塊輸 出的定點數(shù)進行定點加法運算;歸一化模塊,連接至所述定點加法模塊的輸出端,用于對所 述定點加法模塊的輸出進行歸一化處理轉(zhuǎn)成與所述浮點運算器輸入的比特位數(shù)相同的浮 點數(shù)輸出。優(yōu)選地,還包括一個或多個浮點乘法模塊,一個或多個所述浮點乘法模塊的輸出 端連接至所述浮點轉(zhuǎn)定點模塊的輸入端,用于對輸入的浮點數(shù)進行浮點乘法的運算;所述 浮點轉(zhuǎn)定點模塊的輸入端連接至所述浮點乘法模塊的輸出端,所述浮點轉(zhuǎn)定點模塊用于將 所述浮點乘法模塊的運算結(jié)果和/或來自所述浮點運算器的輸入端的浮點數(shù)轉(zhuǎn)換為定點 數(shù)。優(yōu)選地,所述定點加法模塊包括一個或多個定點加法器;或者,所述定點加法模 塊包括一個或多個定點加法器,以及一個或多個華萊士樹模塊。優(yōu)選地,還包括選擇器,所述選擇器的兩個輸入端分別連接至所述浮點運算器的 輸入端和所述定點加法模塊的輸出端,所述選擇器的輸出端連接至所述定點加法模塊的輸入端,所述選擇器用于選擇向所述定點加法模塊反饋所述定點加法模塊的輸出,或者向所 述定點加法模塊輸入來自所述浮點運算器的輸入端的經(jīng)由所述浮點轉(zhuǎn)定點模塊轉(zhuǎn)換成的 定點數(shù)。優(yōu)選地,所述華萊士樹模塊中的兩個輸入端分別連接至所述浮點轉(zhuǎn)定點模塊的輸 出端,用于將所述浮點乘法模塊進行浮點乘法運算之后的浮點數(shù)轉(zhuǎn)換成的定點數(shù)作為輸 入,所述華萊士樹的另一個輸入端連接至選擇器的輸出端,用于將來自所述選擇器的輸出 作為所述華萊士樹的另一個輸入,其中,所述選擇器的兩個輸入為定點加法模塊的輸出和 來自所述浮點轉(zhuǎn)定點模塊將所述浮點運算器的輸入端的浮點數(shù)轉(zhuǎn)換得到的定點數(shù)。優(yōu)選地,所述浮點乘法模塊在將對輸入的浮點數(shù)進行浮點乘法的運算之后,不進 行歸一化處理,將進行浮點乘法運算之后的結(jié)果直接輸入到所述浮點轉(zhuǎn)定點模塊。優(yōu)選地,還包括前導零預測模塊,連接至所述定點加法模塊的輸出端,用于對所 述定點加法模塊的輸出進行前導零計數(shù)。優(yōu)選地,所述浮點運算器的輸入端輸入的浮點數(shù)小于或等于16比特。根據(jù)本發(fā)明的另一個方面,還提供了一種浮點運算的處理方法,包括將輸入的浮 點數(shù)轉(zhuǎn)換為定點數(shù);對所述定點數(shù)進行定點加法運算;對所述定點加法運算的結(jié)果進行歸 一化處理轉(zhuǎn)成與所述輸入的浮點數(shù)比特位數(shù)相同的浮點數(shù)輸出。優(yōu)選地,將輸入的浮點數(shù)轉(zhuǎn)換為定點數(shù)包括將輸入的浮點數(shù)進行浮點乘法的運 算之后的浮點數(shù)轉(zhuǎn)換為定點數(shù),和/或,將直接輸入的浮點數(shù)轉(zhuǎn)換為定點數(shù)。通過本發(fā)明,解決了相關(guān)技術(shù)中不能實現(xiàn)高頻率下單拍累加而導致的問題,進而 實現(xiàn)了浮點運算器器的工作在高頻率下的單拍累加。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中圖1是根據(jù)相關(guān)技術(shù)的傳統(tǒng)浮點加法器的原理框圖;圖2是根據(jù)本發(fā)明實施例的浮點運算器的結(jié)構(gòu)框圖;圖3是根據(jù)本發(fā)明實施例的浮點運算的處理方法的流程圖;圖4是與本發(fā)明實施例相關(guān)的浮點加法器的實現(xiàn)原理框圖;圖5是根據(jù)本發(fā)明實施例的支持單拍反饋累加的浮點乘加器的結(jié)構(gòu)框圖;圖6是根據(jù)本發(fā)明實施例的浮點乘加的處理方法的流程圖;圖7是根據(jù)本發(fā)明實施例的浮點乘加器的EO階段電路框圖;圖8是根據(jù)本發(fā)明實施例的浮點乘加器的El階段電路框圖;圖9是根據(jù)本發(fā)明實施例的浮點乘加器的E2階段電路框圖;圖10是根據(jù)本發(fā)明實施例的浮點乘加器的E3階段電路框圖。
具體實施例方式下文中將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的 情況下,本申請中的實施例及實施例中的特征可以相互組合。在本實施例中采用了用定點加法運算代替浮點運算的方法。本實施例可以應(yīng)用于一般浮點乘加器、一般浮點加法器,帶累加或不帶累加功能只要浮點數(shù)的寬度較小(< = 16bit,或稍大于16bit)都適用于本實施例。需要說明的是,浮點數(shù)比較大的情況也可以適 用本實施例,只不過實現(xiàn)的面積要增大。因此,本實施例最佳應(yīng)用于小于或等于16bit的情 況,而16比特的寬度對于移動終端而言已經(jīng)足夠了。以下以自定義的1,5,10格式(Ibit 符號位,5bit指數(shù),IObit尾數(shù))的16bit浮點數(shù)(兼容IEEE7M浮點數(shù)規(guī)范)為例進行說 明。在本實施例中提供了一種浮點運算器,圖2是根據(jù)本發(fā)明實施例的浮點運算器的 結(jié)構(gòu)框圖,如圖2所示,該浮點運算器的結(jié)構(gòu)框圖包括浮點轉(zhuǎn)定點模塊20、定點加法模塊 22和歸一化模塊24,下面對該結(jié)構(gòu)進行說明。浮點轉(zhuǎn)定點模塊20,用于將輸入到浮點轉(zhuǎn)定點模塊的浮點數(shù)轉(zhuǎn)換為定點數(shù);定點 加法模塊22,定點加法模塊22的輸入端連接至浮點轉(zhuǎn)定點模塊的輸出端,定點加法模塊22 的輸出端連接至定點加法模塊22的輸入端,用于對浮點轉(zhuǎn)定點模塊20輸出的定點數(shù)和所 述定點加法模塊輸出的定點數(shù)進行定點加法運算;歸一化模塊M,連接至定點加法模塊22 的輸出端,用于對定點加法模塊的輸出進行歸一化處理轉(zhuǎn)成與浮點運算器輸入的比特位數(shù) 相同的浮點數(shù)輸出。通過上述浮點運算器,將浮點運算轉(zhuǎn)換成了定點運算,而且實現(xiàn)了累加。由于不在 使用浮點加法運算,因此實現(xiàn)了在高頻率下的處理。優(yōu)選地,該浮點運算器還可以實現(xiàn)乘加的運算,此時,該浮點運算器還包括一個 或多個浮點乘法模塊,一個或多個浮點乘法模塊的輸出端連接至浮點轉(zhuǎn)定點模塊的輸入 端,用于對輸入的浮點數(shù)進行浮點乘法的運算;浮點轉(zhuǎn)定點模塊的輸入端連接至浮點乘法 模塊的輸出端,浮點轉(zhuǎn)定點模塊用于將浮點乘法模塊的運算結(jié)果和/或來自浮點運算器的 輸入端的浮點數(shù)轉(zhuǎn)換為定點數(shù)。通過該浮點運算器,可以實現(xiàn)浮點乘加器的工作在高頻率 下的單拍累加。優(yōu)選地,在實施時,如果需要對來自該浮點運算器輸入端的數(shù)進行加法運算,那么 可以增加一個選擇器,該選擇器來選擇對來自浮點運算器的輸入端的書進行加或者是選擇 進行累加,例如,該浮點運算器還包括選擇器,選擇器的兩個輸入端分別連接至浮點運算 器的輸入端和定點加法模塊的輸出端,選擇器的輸出端連接至定點加法模塊的輸入端,選 擇器用于選擇向定點加法模塊反饋定點加法模塊的輸出,或者向定點加法模塊輸入來自浮 點運算器的輸入端的經(jīng)由浮點轉(zhuǎn)定點模塊轉(zhuǎn)換成的定點數(shù)。優(yōu)選地,該定點加法模塊包括一個或多個定點加法器。當然,也可以采用華萊士 樹取代定點加法器,此時該定點加法模塊包括一個或多個定點加法器,以及一個或多個華 萊士樹模塊。下面對使用華萊士樹進行舉例說明,例如,華萊士樹模塊中的兩個輸入端分別 連接至浮點轉(zhuǎn)定點模塊的輸出端,用于將浮點乘法模塊進行浮點乘法運算之后的浮點數(shù)轉(zhuǎn) 換成的定點數(shù)作為輸入,華萊士樹的另一個輸入端連接至選擇器的輸出端,用于將來自選 擇器的輸出作為華萊士樹的另一個輸入,其中,選擇器的兩個輸入為定點加法模塊的輸出 和來自浮點轉(zhuǎn)定點模塊將浮點運算器的輸入端的浮點數(shù)轉(zhuǎn)換得到的定點數(shù)。優(yōu)選地,浮點乘法模塊在將對輸入的浮點數(shù)進行浮點乘法的運算之后,不進行歸 一化處理,將進行浮點乘法運算之后的結(jié)果直接輸入到浮點轉(zhuǎn)定點模塊。優(yōu)選地,該浮點運算器還包括前導零預測模塊,連接至定點加法模塊的輸出端,用于對定點加法模塊的輸出進行前導零計數(shù)。在本實施例中,還提供了一種浮點運算的處理方法,圖3是根據(jù)本發(fā)明實施例的 浮點運算的處理方法的流程圖,當然該流程可以使用上述的浮點運算器來實現(xiàn),如圖3所 示,該流程包括如下步驟步驟S302,將輸入的浮點數(shù)轉(zhuǎn)換為定點數(shù);步驟S304,對定點數(shù)進行定點加法運算;步驟S306,對定點加法運算的結(jié)果進行歸一化處理轉(zhuǎn)成與輸入的浮點數(shù)比特位數(shù) 相同的浮點數(shù)輸出。優(yōu)選地,在步驟S302將輸入的浮點數(shù)轉(zhuǎn)換為定點數(shù)中包括將輸入的浮點數(shù)進行 浮點乘法的運算之后的浮點數(shù)轉(zhuǎn)換為定點數(shù),和/或,將直接輸入的浮點數(shù)轉(zhuǎn)換為定點數(shù)。在下面的優(yōu)選實施例中,提供的是一種浮點乘加器,該乘加器使用了上述實施例 中的實現(xiàn)方法,可以實現(xiàn)較多類型的運算。為了更好地進行說明,在本實施例中首先對浮點 加法器的原理進行說明,圖4是與本發(fā)明實施例相關(guān)的浮點加法器的實現(xiàn)原理框圖。圖4 中示出的浮點加法器支持實數(shù)、復數(shù)乘加,乘累加及快速傅立葉(fft)的蝶形運算。下面對 這些算法進行說明。實數(shù)乘法例如,alxbl、a2xb2;實數(shù)加法此時bl = l、b2= 1,例如,alxl+cl,ahl+c2 ;實數(shù)乘力卩:alxbl+cl, a2xb2+c2 ;累加(包括實數(shù)和復數(shù)):alxbl+zl,a2xb2+z2,或 al+zl, a2+z2 等。zl 和 z2 是 上上拍的運算結(jié)果;復數(shù)乘法(al+ja2)X(bl+jb2),alxbl-a2xb2為復數(shù)乘法的實部運算,虛部運算 還需要另一個相同的浮點運算單元;復數(shù)加法(al+ja2)+ (cl+jc2),bl = l,b2 = 1,實部=alxl+cl,虛部=a2xl+c2 ;fft 的蝶形運算此時 cl、c2 輸入相同的數(shù) Ar,BWr = alxbl+a2xb2, zl = Ar+Bffr, z2 = Ar-Bffr即為蝶形運算的兩個輸出。整個浮點乘加器流水線需要5階。其中浮點加法邏輯最長,需要分成兩階。故不 能實現(xiàn)單拍反饋累加。通過實現(xiàn)該浮點乘加器來實現(xiàn)上述乘加器的實現(xiàn)的單元綜合結(jié)果純組合邏輯 8543門;各拍間寄存器共2498門;總面積=8543+2498 = 11041門;延時2. 62ns,包含寄 存器延時。對于上述浮點乘加器,如果采用雙路徑優(yōu)化方法用一拍實現(xiàn)浮點加法器,可以實 現(xiàn)單拍累加。即將圖4中的加法和歸一化部分合并為1階段。整個乘加器總共只有3拍。綜 合結(jié)果純組合邏輯12667門;寄存器1285 ;總面積12667+1285 = 13972門;延時3. 34ns, 包含寄存器延時。雖然可以實現(xiàn)單拍的反饋累加,但是不能工作在330MHz及以上。在對上述浮點乘加器分析的過程中發(fā)現(xiàn),導致不能實現(xiàn)高頻單拍累加的主要原因 在于浮點乘加器中浮點加法器難以工作在較高頻率下。因此,在本實施例中采用了浮點定 點混合運算或用定點運算代替浮點運算的方法。本實施例可以應(yīng)用于一般浮點乘加器、 一般浮點加法器,帶累加或不帶累加功能只要浮點數(shù)的寬度較小(<=16bit,或稍大于 16bit)都適用于本實施例。需要說明的是,浮點數(shù)比較大的情況也可以適用本實施例,至不過實現(xiàn)的面積要增大。因此,本實施例最佳應(yīng)用于小于或等于16bit的情況,而16比特的 寬度對于移動終端而言已經(jīng)足夠了。以下以自定義的1,5,10格式(Ibit符號位,5bit指 數(shù),IObit尾數(shù))的16bit浮點數(shù)(兼容IEEE7M浮點數(shù)規(guī)范)為例進行說明。圖5是根據(jù)本發(fā)明實施例的支持單拍反饋累加的浮點乘加器的結(jié)構(gòu)框圖,如圖5 所示,該浮點乘加器將浮點加法全部轉(zhuǎn)化為定點加法,由于采用了定點加法因此可以工作 在高頻率下,并且,該浮點乘加器利用了華萊士樹的3化2,可以將3個定點加法器進行融 合,減少一個全加器。并且只需最后進行歸一化處理,電路的邏輯簡化,定點加法時序很好, 46bit定點全加器只需0. 93ns延時,面積也很小約590門。綜合結(jié)果如下(綜合條件同 上)純組合邏輯9845門;各拍間寄存器共3281門;總面積=9845+3281 = 13126門;延時 2. 83ns,包含寄存器延時。該浮點乘加器工作在330MHz。與圖6中的實現(xiàn)方法相比,90nm 工藝面積增加13126-11041 = 2085門,大約2085/11041 = 19%。這是實現(xiàn)圖5浮點乘加 器的面積代價。圖5示出的浮點乘加器在純組合邏輯上增加不多,只增加1302門。另近一半增加 的面積來自各拍間增加的寄存器(圖5中縱貫的豎線表示流水線各階間寄存器)。這是由 于浮點轉(zhuǎn)化為全精度定點加法擴大位寬到42bit造成的。雙路徑實現(xiàn)在組合邏輯上增加非 常大,但是由于減少2拍流水,寄存器減少非常多,所以總體電路面積增加只比圖5中的浮 點乘加器多一些,但是由于其優(yōu)化時序有限,根本達不到工作頻率要求,差距很遠。綜合來 看,該乘加器以最小的代價實現(xiàn)高頻下單拍累加功能,在40nm工藝下綜合能工作頻率能達 到 450MHz。如圖5所示,該浮點乘加器包括浮點乘法模塊,用于對輸入的浮點數(shù)al和bl、以 及a2和1^2進行浮點乘法的運算;浮點轉(zhuǎn)定點模塊,浮點轉(zhuǎn)定點模塊的輸入端連接至浮點乘 法模塊的輸出端和浮點乘加器的輸入端,用于將浮點乘法模塊的運算結(jié)果和輸入端的浮點 數(shù)轉(zhuǎn)換為定點數(shù);華萊士樹模塊,華萊士樹模塊其中的兩個輸入端分別連接至浮點轉(zhuǎn)定點 模塊的輸出端,用于將al和bl,以及a2和1^2進行浮點乘法運算之后轉(zhuǎn)換成的定點數(shù)作為 輸入,華萊士樹的另一個輸入端連接至選擇器的輸出端,用于將來自選擇器的輸出作為華 萊士樹的另一個輸入,其中,選擇器的兩個輸入為定點加法模塊的輸出和來自浮點轉(zhuǎn)定點 模塊將浮點乘加器的輸入端的浮點數(shù)轉(zhuǎn)換得到的定點數(shù);定點加法模塊,定點加法模塊的 輸入端連接至華萊士樹模塊的兩個輸出端,用于對華萊士樹的輸出進行定點加法運算;歸 一化模塊(即E3部分),連接至定點加法模塊的輸出端,用于對定點加法模塊的輸出進行歸 一化處理。需要說明的是,定點加法模塊可以包括一個或多個定點加法器,此處的定點加法 模塊包括華萊士樹。此外,由于對于華萊士樹而言,三輸入華萊士數(shù)之后進行加法的電路可 以改為兩個加法器實現(xiàn),即兩輸入先加再將這個加法結(jié)果與第三個輸入相加。因此,也可以 將包括華萊士樹和定點加法器的部分共同稱為定點加法模塊。 優(yōu)選地,在實施時,浮點乘法模塊在將對輸入的浮點數(shù)al和bl、以及a2和1^2進行 浮點乘法的運算之后,不進行歸一化處理,將進行浮點乘法運算之后的結(jié)果直接輸入到浮 點轉(zhuǎn)定點模塊。優(yōu)選地,該浮點乘加器還包括前導零預測模塊,連接至定點加法模塊的輸 出端,用于對定點加法模塊的輸出進行前導零計數(shù)。 優(yōu)選地,在實施時,該浮點乘加器還包括符號位運算模塊,連接至華萊士模塊的 輸入端,其中,該華萊士模塊的輸入端分別用于接收al和bl,以及a2和b2進行浮點乘法運算之后轉(zhuǎn)換成的定點數(shù),符號位運算模塊用于計算al和bl,以及a2和1^2進行浮點乘法運 算之后轉(zhuǎn)換成的定點數(shù)的符號。在本實施例中,還提供了一種浮點乘加的處理方法,圖6是根據(jù)本發(fā)明實施例的 浮點乘加的處理方法的流程圖,如圖6所示,該流程包括如下步驟步驟S602,對輸入端輸入的浮點數(shù)al和bl、以及a2和M進行浮點乘法的運算;步驟S604,將浮點乘法的運算結(jié)果和輸入端輸入的浮點數(shù)轉(zhuǎn)換為定點數(shù);步驟S606,進行3化2運算,其中,所述3化2運算的三個輸入分別為對將al和 bl,以及a2和1^2進行浮點乘法運算之后轉(zhuǎn)換成的定點數(shù),從對輸入端輸入的浮點數(shù)進行轉(zhuǎn) 換得到的定點數(shù);步驟S608,將3化2運算的輸出進行定點加法運算,將定點加法運算得到的結(jié)果反 饋到3化2運算的輸入端,并對定點加法運算的輸出進行歸一化處理。優(yōu)選地,在對輸入的浮點數(shù)al和bl、以及a2和M進行浮點乘法的運算之后,不 進行歸一化處理,將進行浮點乘法運算之后的結(jié)果直接進行轉(zhuǎn)換為定點數(shù)。優(yōu)選地,該處理 方法還包括對定點加法的輸出進行前導零計數(shù)。優(yōu)選地,在進行3化2運算之前,還包括 計算al和bl,以及a2和1^2進行浮點乘法運算之后轉(zhuǎn)換成的定點數(shù)的符號。該浮點乘加器及浮點乘加的處理方法具有如下的優(yōu)點(1)實現(xiàn)了高頻工作下單 拍反饋累加;⑵流水線4拍比傳統(tǒng)設(shè)計5拍少一拍;(3)由于對歸一化前的全精度定點數(shù) 進行累加,在連續(xù)的累加過程中由于沒有被歸一化截掉尾數(shù),所以累加結(jié)果有更高的精度。下面結(jié)合其他附圖對說明圖5所示的浮點乘加器的工作各階段進行說明。EO階段,圖7示出了 EO階段的電路框圖,在該階段中兩個浮點數(shù)的尾數(shù)包括隱 含的Ibit共libit,Ilbitxllbit得到22bit的乘積,同時兩個浮點數(shù)乘數(shù)的指數(shù)相加得到 mult_e。優(yōu)選地,本階段乘法的結(jié)果不需要歸一化,兩個指數(shù)和直接送到El階段,在Wl階 段將乘積結(jié)果進行浮點轉(zhuǎn)定點。由于減少了乘法結(jié)果的歸一化,使得本階段時序得到優(yōu)化, 同時在運算中間保留了更多精度,使得運算的結(jié)果更加準確。El階段,圖8示出了 El階段的電路框圖,在該階段中將alxbl和a2xb2的22bit 乘積按EO階段輸入的各自mult_e進行左移保留高42bit轉(zhuǎn)換為42bit定點數(shù)。cl和c2 根據(jù)其各自的指數(shù)直接轉(zhuǎn)換為42bit定點數(shù)。這里乘積不是按照一般的浮點乘法先截取 libit后歸一化為浮點數(shù)再送到下一階段進行浮點加法的做法,而是保留22bit直接轉(zhuǎn)化 為42bit定點數(shù)送到下階段做定點加法,這樣可以得到更高的精度。E2階段,圖9示出了 E2階段的電路框圖,在該階段中巧妙的利用華萊士樹 (Wallace tree),如圖9所示,圖中的兩個選擇器選擇使用定點加法器上拍的輸出還是cl 作為華萊士樹的輸入。選擇定點加法器上拍的輸出則實現(xiàn)累加功能。multl_fiX和mult2_ fix是El階段輸出的42bit定點數(shù)乘積,是無符號數(shù)。符號由EO階段各自輸入的兩個乘 數(shù)和cl或c2的最高位-符號位決定。multl_neg即multl_fix的符號,1表示負數(shù),0表 示正數(shù)。以alxbl+cl為例,al符號位s = 1,bl和cl的s都為0,multl_neg = 1 ;如al 和bl符號位s = 0,cl的s = 1,因為對cl沒有取反操作,設(shè)置multl_neg = 1,在E3輸出 時將zl的s取反。multl_neg = 1即需要對multl_fix取反加1再送入華萊士樹的輸入, Mult2_fix同理。取反在華萊士樹的輸入前實現(xiàn),見圖9的neg模塊(實現(xiàn)了上述符號位運 算模塊的功能),而對multl_fix加1和mult2_fix加1被巧妙地放在了定點加法器的兩個輸入端。見圖9:{wal_c[441]wal_in_mult2[44], wal_in_multl[44]}禾口 {wal_s, wal_in_ multl[44]}這樣定點加法器擴寬Ibit為46bit寬,而只需要取輸出的高45bit即^5:1]。 wal_in_mult2 [44]和 wal_in_multl [44]分別是 multl_fix 加 1 和 mult2_fix 最高 bit,為 1表示是負數(shù)需要取反加1。圖9中clr模塊的作用是將multl_fix加1和mult2_fix中 一個清除為零,即不需要加上其值。在涉及復數(shù)相乘、復數(shù)乘加和fft蝶形運算不啟動clr 模塊,其他運算時都啟動clr模塊。零前導預測(Leading Zero Anticipation,簡稱為LZA) 模塊實現(xiàn)前導零預測功能,由于定點加法器時序很好,只需0. 93ns,因此在本實施例中只對 加法后結(jié)果進行前導零計數(shù),不進行前導零預測。前導預測800多門,而只進行前導零計數(shù) 400多門,這樣做節(jié)省接近400門電路。圖9中addU45] = 1對結(jié)果取反后再送入LZA,則 可以在結(jié)果為負數(shù)時也是計算前導零數(shù)目,與結(jié)果為正數(shù)時一樣。^bit的結(jié)果經(jīng)過溢出 (overflow)判斷后取43bit —邊送E3進行歸一化和四舍五入,一邊反饋到華萊士樹輸入, 實現(xiàn)單拍累加。E3階段,圖10示出了 E3階段的電路框圖,在該階段中利用E2階計算出的LZA結(jié) 果對加法結(jié)果進行移位,并截取有效位的最高11比特作為歸一化的結(jié)果,然后判斷截取后 端最低位進行四舍五入得到尾數(shù)結(jié)果,指數(shù)的結(jié)果通過固定值減去LZA結(jié)果得到,最后合 并符號位,指數(shù)和尾數(shù)作為16bit浮點數(shù)輸出。綜上所述,通過上述實施例,解決了相關(guān)技術(shù)中的浮點乘加器不能實現(xiàn)高頻率下 單拍累加而導致的問題,進而實現(xiàn)了浮點乘加器的工作在高頻率下的單拍累加。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成 的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而可以將它們存儲在 存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中 的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬 件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種浮點運算器,其特征在于包括浮點轉(zhuǎn)定點模塊,用于將輸入到所述浮點轉(zhuǎn)定點模塊的浮點數(shù)轉(zhuǎn)換為定點數(shù);所述定點加法模塊,所述定點加法模塊的輸入端連接至所述浮點轉(zhuǎn)定點模塊的輸出 端,所述定點加法模塊的輸出端連接至所述定點加法模塊的輸入端,用于對所述浮點轉(zhuǎn)定 點模塊輸出的定點數(shù)和所述定點加法模塊輸出的定點數(shù)進行定點加法運算;歸一化模塊,連接至所述定點加法模塊的輸出端,用于對所述定點加法模塊的輸出進 行歸一化處理轉(zhuǎn)成與所述浮點運算器輸入的比特位數(shù)相同的浮點數(shù)輸出。
2.根據(jù)權(quán)利要求1所述的浮點運算器,其特征在于,還包括一個或多個浮點乘法模塊,一個或多個所述浮點乘法模塊的輸出端連接至所 述浮點轉(zhuǎn)定點模塊的輸入端,用于對輸入的浮點數(shù)進行浮點乘法的運算;所述浮點轉(zhuǎn)定點模塊的輸入端連接至所述浮點乘法模塊的輸出端,所述浮點轉(zhuǎn)定點模 塊用于將所述浮點乘法模塊的運算結(jié)果和/或來自所述浮點運算器的輸入端的浮點數(shù)轉(zhuǎn) 換為定點數(shù)。
3.根據(jù)權(quán)利要求1或2所述的浮點運算器,其特征在于,所述定點加法模塊包括一個或多個定點加法器;或者,所述定點加法模塊包括一個或多個定點加法器,以及一個或多個華萊士樹模塊。
4.根據(jù)權(quán)利要求3所述的浮點運算器,其特征在于,還包括選擇器,所述選擇器的兩 個輸入端分別連接至所述浮點運算器的輸入端和所述定點加法模塊的輸出端,所述選擇器 的輸出端連接至所述定點加法模塊的輸入端,所述選擇器用于選擇向所述定點加法模塊反 饋所述定點加法模塊的輸出,或者向所述定點加法模塊輸入來自所述浮點運算器的輸入端 的經(jīng)由所述浮點轉(zhuǎn)定點模塊轉(zhuǎn)換成的定點數(shù)。
5.根據(jù)權(quán)利要求4所述的浮點運算器,其特征在于,所述華萊士樹模塊中的兩個輸入 端分別連接至所述浮點轉(zhuǎn)定點模塊的輸出端,用于將所述浮點乘法模塊進行浮點乘法運算 之后的浮點數(shù)轉(zhuǎn)換成的定點數(shù)作為輸入,所述華萊士樹的另一個輸入端連接至選擇器的輸 出端,用于將來自所述選擇器的輸出作為所述華萊士樹的另一個輸入,其中,所述選擇器的 兩個輸入為定點加法模塊的輸出和來自所述浮點轉(zhuǎn)定點模塊將所述浮點運算器的輸入端 的浮點數(shù)轉(zhuǎn)換得到的定點數(shù)。
6.根據(jù)權(quán)利要求2所述的浮點運算器,其特征在于,所述浮點乘法模塊在將對輸入的 浮點數(shù)進行浮點乘法的運算之后,不進行歸一化處理,將進行浮點乘法運算之后的結(jié)果直 接輸入到所述浮點轉(zhuǎn)定點模塊。
7.根據(jù)權(quán)利要求1或2所述的浮點運算器,其特征在于還包括前導零預測模塊,連接 至所述定點加法模塊的輸出端,用于對所述定點加法模塊的輸出進行前導零計數(shù)。
8.根據(jù)權(quán)利要求1或2中任一項所述的浮點運算器,其特征在于,所述浮點運算器的輸 入端輸入的浮點數(shù)小于或等于16比特。
9.一種浮點運算的處理方法,其特征在于包括將輸入的浮點數(shù)轉(zhuǎn)換為定點數(shù);對所述定點數(shù)進行定點加法運算;對所述定點加法運算的結(jié)果進行歸一化處理轉(zhuǎn)成與所述輸入的浮點數(shù)比特位數(shù)相同 的浮點數(shù)輸出。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,將輸入的浮點數(shù)轉(zhuǎn)換為定點數(shù)包括將 輸入的浮點數(shù)進行浮點乘法的運算之后的浮點數(shù)轉(zhuǎn)換為定點數(shù),和/或,將直接輸入的浮 點數(shù)轉(zhuǎn)換為定點數(shù)。
全文摘要
本發(fā)明公開了浮點運算器及浮點運算的處理方法,該浮點運算器包括浮點轉(zhuǎn)定點模塊,用于將輸入到所述浮點轉(zhuǎn)定點模塊的浮點數(shù)轉(zhuǎn)換為定點數(shù);所述定點加法模塊,所述定點加法模塊的輸入端連接至所述浮點轉(zhuǎn)定點模塊的輸出端,所述定點加法模塊的輸出端連接至所述定點加法模塊的輸入端,用于對所述浮點轉(zhuǎn)定點模塊輸出的定點數(shù)和所述定點加法模塊輸出的定點數(shù)進行定點加法運算;歸一化模塊,連接至所述定點加法模塊的輸出端,用于對所述定點加法模塊的輸出進行歸一化處理轉(zhuǎn)成與所述浮點運算器輸入的比特位數(shù)相同的浮點數(shù)輸出。通過本發(fā)明實現(xiàn)了高頻率下的單拍累加。
文檔編號G06F7/48GK102103479SQ201110050039
公開日2011年6月22日 申請日期2011年3月2日 優(yōu)先權(quán)日2011年3月2日
發(fā)明者華力, 林文瓊, 黎立煌 申請人:中興通訊股份有限公司