利用浮點架構(gòu)的定點除法電路的制作方法
【專利摘要】本發(fā)明涉及利用浮點架構(gòu)的定點除法電路。提供一種用于將兩個二進制數(shù)相除的系統(tǒng)、方法和計算機程序產(chǎn)品。除法器使用浮點歸一化架構(gòu)來實施定點除法函數(shù)以產(chǎn)生最接近的初始商近似值。除法器通過將每個數(shù)縮放必需的二倍而將輸入被除數(shù)和除數(shù)歸一化到范圍[0.5,1.0)。向除法器核心提交歸一化的輸入,所述除法器核心可以被優(yōu)化用于將此類有限的范圍的輸入相除。然后,將除法器核心輸出重新縮放適當?shù)亩?、適當?shù)貛Х?,并且加載到飽和寄存器中以便以各種格式輸出。除法器核心以遞減的有效值順序逐步輸出商位直到達到預定的精度等級,通常比完整的商中更少的位,以便更快的輸出。一個實施方案在一個時鐘周期內(nèi)生成六個最高有效商位。
【專利說明】利用浮點架構(gòu)的定點除法電路
【技術(shù)領域】
[0001]本發(fā)明涉及一種用于除法器的系統(tǒng)、方法和計算機程序產(chǎn)品,所述除法器將以二進制形式表示的兩個數(shù)相除。除法器可以被實施在集成電路中。
【背景技術(shù)】
[0002]除法是可以被視為與乘法相反,并且需要解決很多不同的問題的算術(shù)運算。從概念上說,商可以被視為被除數(shù)可以完全包含除數(shù)的次數(shù)。如果被除數(shù)不能被除數(shù)整除,那么將留下余數(shù),并且可以用各種方式表示余數(shù)。因此,一般地,被除數(shù)=(商*除數(shù))+余數(shù)。商的符號取決于被除數(shù)和除數(shù)的符號,即,如果被除數(shù)與除數(shù)具有同號,那么商為正,但是如果被除數(shù)與除數(shù)具有異號,那么商為負。除以零未定義。
[0003]將兩個數(shù)相除的熟悉的手動運算涉及從被除數(shù)重復的減去除數(shù)。商基本上充當可以從被除數(shù)完全減去除數(shù)的次數(shù)的計數(shù)器。在余數(shù)小于除數(shù)時,輸入數(shù)的除法可以停止,但是更一般地說,過程可以繼續(xù)將余數(shù)評估為分數(shù)。
[0004]以二進制形式表示的數(shù)的除法也為多種用途所需。例如,數(shù)字計算機具有在算術(shù)邏輯單元中執(zhí)行二進制除法以及其他運算的微處理器。數(shù)字信號處理電路經(jīng)常也需要二進制除法。常規(guī)的二進制除法器遵循熟悉的“重復減法”算法,并且因此具有許多缺點,主要是其運算可能非常耗時。
[0005]因此,發(fā)明人已確定在本領域中需要一種改進的二進制除法器。
【專利附圖】
【附圖說明】
[0006]圖1為描繪根據(jù)本發(fā)明的一個方面的示例性快速除法器示意圖的圖解。
[0007]圖2為描繪根據(jù)本發(fā)明的一個方面的示例性快速除法器方法的流程圖。
[0008]圖3為描繪根據(jù)本發(fā)明的一個方面的示例性除法器核心示意圖的圖解。
[0009]圖4為描繪根據(jù)本發(fā)明的一個方面的示例性多格式完整的除法器示意圖的圖解。
【具體實施方式】
[0010]本發(fā)明的實施方案提供一種用于將兩個二進制數(shù)相除的系統(tǒng)、方法和計算機程序產(chǎn)品。在一些情況下,可能并不需要計算完整的商,因為部分商可能足以滿足某些目的。快速產(chǎn)生部分商可能在某些應用(例如,數(shù)字信號處理)中是特別有用的。
[0011]因此,提供一種快速除法器實施方案,其可以快速計算只是完整的商值的近似值的部分商。例如,可以只計算完整的64位商中的24位,但是那些24位是最高有效位。此實施方案可以提供具有有限的精確度,但具有大動態(tài)范圍的快速的結(jié)果。也描述以各種二進制格式提供完整的商的替代實施方案。
[0012]如下文將要描述的,快速除法器可以通過使用浮點歸一化架構(gòu)來實施定點除法函數(shù)以產(chǎn)生最接近的初始商近似值。簡要地,快速除法器可以歸一化其輸入,執(zhí)行24位除法運算,并且乘/移位輸出到其正確的值。歸一化輸入允許高度優(yōu)化除法器核心,這是因為除法器處理的輸入可能被約束到范圍[0.5,1.0),即,從二分之一(含)到接近一。
[0013]此外,可以通過以數(shù)據(jù)塊或商子集輸出結(jié)果的除法器核心來計算所需的精密商??焖偕缮踔潦遣糠稚痰某跏紨?shù)據(jù)塊可能在一些情況下會有很大的效用。因此,所描述的除法器實施方案可以迅速產(chǎn)生商子集的最高有效位,然后在進一步的時鐘周期內(nèi)繼續(xù)生成額外的較低有效商位直到達到預定的商精度。
[0014]圖1為描繪根據(jù)本發(fā)明的一個方面的示例性快速除法器100的功能圖??焖俪ㄆ?00可以被制造成集成電路。被除數(shù)102和除數(shù)104為快速除法器的輸入。在一個示例性實施方案中,被除數(shù)可以為64位二進制數(shù)并且除數(shù)可以為32位二進制數(shù)。在一個實施方案中,向快速除法器100提交除數(shù)可以觸發(fā)快速除法器的運算。
[0015]在一個實施方案中,被除數(shù)102和除數(shù)104可以是帶符號數(shù),因此快速除法器100可以接著在方框106和108獲得每個輸入的絕對值,并且分離出被除數(shù)符號位110和除數(shù)符號位112以供后續(xù)使用。符號位110和112可以確定將要描述的商的適當?shù)姆枴?br>
[0016]快速除法器100可以包括方框114和116以分別歸一化現(xiàn)在無符號的被除數(shù)102和除數(shù)104,以使得每個數(shù)可以具有在范圍[0.5,1.0)內(nèi)的值,即,從二分之一(含)到(但不包括)一。在一個實施方案中,通過將每個數(shù)縮放必需的二倍直到每個數(shù)的最高有效位的位置為“1”,可以歸一化輸入。通過移位數(shù)字一位,二進制數(shù)的值可以容易地改變二倍。因此,電路塊114和116可以根據(jù)需要移位被除數(shù)102和除數(shù)104,以使得每個數(shù)的縮放值在所需的范圍內(nèi)。可以將描述由此得到的指數(shù)的數(shù)據(jù)傳遞到加法器118。加法器118可以減去用于每個歸一化中的指數(shù)(例如,二的冪)(例如,從除數(shù)104的標度因子122減去被除數(shù)102的標度因子120)以產(chǎn)生將要描述的商的重新標度因子124。
[0017]在一個實施方案中,歸一化的被除數(shù)可以為45位數(shù),而歸一化的除數(shù)可以為23位數(shù)??梢韵驁?zhí)行除法的除法器核心126提交歸一化的輸入。下文參照圖4描述除法器核心126的不同的實施方案。不同的實施方案可以在每個時鐘周期具有不同的除數(shù)寬度和不同的吞吐量(例如,計算出的商位)??梢允褂贸ㄆ骱诵纳沙粤銟擞汢Y0128 ;除以零未定義并且可以被視為可能會停止運算并且觸發(fā)特定的預定商值的輸出的誤差條件。在一個實施方案中,除法器核心126可以在接收到時鐘信號130后開始其運算,時鐘信號130可以為高級高性能總線(AHB)時鐘信號。AHB為在微控制器設計的領域中眾所周知的一部分高級微控制器總線架構(gòu)(AMBA)協(xié)議、開放標準片上互連規(guī)范。
[0018]除法器核心126的輸出132為歸一化的被除數(shù)與歸一化的除數(shù)的商。在一個實施方案中,系統(tǒng)的輸出可以為表不歸一化的輸入的商的24位數(shù)??梢詮某ㄆ骱诵?26內(nèi)的存儲商的存儲單元檢索商。在其他實施方案中,可以在運算的多個時鐘周期內(nèi)建立除法器核心輸出132,其中可以計算每個時鐘周期所需的商位的總數(shù)的預定數(shù)或“數(shù)據(jù)塊”。
[0019]如將要描述的,例如,在一個總線時鐘周期內(nèi),可以使用除法器核心126相當迅速地生成要計算的商位的第一數(shù)據(jù)塊。商位的這個子集可以包括最高有效商位,以使得可以產(chǎn)生商的最精確的近似值作為初始輸出??梢噪S后生成額外的較低有效位,過程可能會繼續(xù)直到實現(xiàn)所需的商精度等級。因此,除法器核心126可以被設計成通過以有效值的遞減順序逐步輸出商位來滿足特定的需求。在例如每個時鐘周期計算六個商位的系統(tǒng)中,在一個時鐘周期后的六個最高有效位將可用,在兩個時鐘周期后的十二個最高有效位將可用,依此類推。在四個時鐘周期后的所有二十四個示例性商位將可用。[0020]可以通過商的重新標度因子124縮放除法器核心126的輸出132以在歸一化期間補償任何先前輸入縮放。如同先前定義的歸一化電路,移位寄存器134可以通過在適當?shù)姆较蛏弦莆惠敵鲞m當?shù)奈粩?shù)將除法器核心輸出縮放二的冪。在一個實施方案中,縮放的輸出可以為64位數(shù)。
[0021]必要時,可以基于被除數(shù)符號位110和除數(shù)符號位112,使用符號器136將縮放的輸出轉(zhuǎn)變?yōu)閹Х枖?shù)。在一個實施方案中,邏輯138對被除數(shù)符號位110和除數(shù)符號位112執(zhí)行異或運算以確定商符號,例如,如果被除數(shù)和除數(shù)中只有一個為負,那么商應為負,否則商為正??梢詫Х柕目s放的輸出存儲在寄存器140中。
[0022]也可以將帶符號的縮放的輸出加載到飽和累加器142中以輸出為商。在算術(shù)運算期間,飽和算術(shù)將被處理數(shù)的值限制或“夾緊”到最大或最小范圍界限。這種行為可能會避免數(shù)值的經(jīng)常不切實際的劇變,其可能由模算術(shù)“環(huán)繞”引起。例如,在8位寄存器中,256個數(shù)值可用于描述通常從O變化到最多255的物理測量。如果測量超過預期范圍,那么寄存器可以例如在溢出期間“翻轉(zhuǎn)”到零,從而產(chǎn)生極具誤導性的數(shù)值描述,這是因為真正的最高有效位被丟棄。在下溢和負數(shù)值的存儲的情況下,可能會發(fā)生類似的問題。因此,飽和累加器142可以有效地重新格式化帶符號的縮放的輸出以最好地表示具有可用的寄存器大小的商值。飽和累加器的使用是可選的。
[0023]圖1表示可以具有專用于每個方框的電路的功能方框圖??梢愿鶕?jù)需要合并電路,例如,為了速度和功率效率。如本領域中已知的,一些功能可能由控制器執(zhí)行。
[0024]現(xiàn)在參看圖2,示出描繪根據(jù)本發(fā)明的一個方面的示例性快速除法器方法200的流程圖??梢栽诓襟E202輸入被除數(shù)和除數(shù)??梢栽趩为毜牟襟E中發(fā)生這些輸入,并且在一些實施方案中,除數(shù)的輸入可以觸發(fā)方法開始。
[0025]在步驟204中,可以使用為隨后用于計算商符號而保留的符號信息獲得除數(shù)的絕對值。在步驟206中,可以使用同樣保留的除數(shù)符號信息獲得被除數(shù)的絕對值。在一些實施方案中,可以同時執(zhí)行符號處理。
[0026]可以在步驟208中歸一化除數(shù),步驟208可以包括使除數(shù)移位二的足夠冪以使得其縮放值在范圍[0.5,1.0)中,即,從二分之一(含)到(但實際上不包括)一。類似地,可以在步驟210中歸一化被除數(shù);歸一化除數(shù)和被除數(shù)不需要以所述示例性順序發(fā)生,并且實際上可以被同時執(zhí)行。
[0027]在步驟212中,除法器核心可以開始執(zhí)行被處理的被除數(shù)和除數(shù)的除法。除法器核心可以在步驟214中生成除以零標記,其可以觸發(fā)特定處理輸出以表示誤差條件。例如,除法器200可以輸出特定終值以表示除以零誤差條件。除法器核心可以在步驟216中另外生成商或商數(shù)據(jù)塊。
[0028]在步驟218中,方法可以組合被除數(shù)和除數(shù)歸一化因子以生成應用于商的重新標度或去歸一化因子。在步驟220中,例如,可以通過移位將商縮放二的適當冪。在步驟222中,可以從除數(shù)的符號和被除數(shù)的符號計算商的符號,例如,不同的符號將產(chǎn)生負商。在步驟224中,可以輸出具有適當符號的商(或商“數(shù)據(jù)塊”,例如,逐步生成的商子集)。
[0029]在步驟226中,方法可以確定是否已計算所有必需的商位。在一個實施方案中,可以在一個總線時鐘周期內(nèi)生成要計算的商位的第一子集;這些商位可以是最高有效商位??梢陨梢话憔哂休^低有效值的額外的必需的位,因為方法可以將運算選擇性地返回到除法器核心以在步驟226中執(zhí)行額外的計算。這個計算過程可以繼續(xù)直到實現(xiàn)所需的輸出商精度等級。
[0030]現(xiàn)在參看圖3,示出描繪根據(jù)本發(fā)明的一個方面的示例性除法器核心示意圖的圖解。這個除法器核心300可以用于先前描述的快速除法器實施方案,或用于關于圖4描述的替代除法器實施方案。也可以使用可能在本領域中已知的其他除法器核心,例如,在MaurusCappa 和 V.Carl Hamacher 的“An Augmented Iterative Array for High-Speed BinaryDivision” (IEEE Transactions on Computers, v.C-22, n.2,1973 年 2 月)中描述的迭代陣列除法器(IAD)電路,其以引用的方式整體并入本文。
[0031]除法器核心300可以包括許多移位/加塊302。每個移位/加塊302可以執(zhí)行這
個運算:
[0032]
【權(quán)利要求】
1.一種用于將兩個輸入二進制數(shù)相除的電路,其包括: 歸一化器,其用于歸一化輸入除數(shù)和輸入被除數(shù); 除法器核心,其用于將所述歸一化的輸入相除以產(chǎn)生至少部分商; 定標器,其用于逆轉(zhuǎn)所述歸一化;以及 至少一個輸出寄存器,其用于輸出所述至少部分商。
2.如權(quán)利要求1所述的電路,其中所述電路通過高級高性能總線(AHB)通信。
3.如權(quán)利要求1所述的電路,其中通過接收到所述除數(shù)來觸發(fā)所述電路。
4.如權(quán)利要求1所述的電路,其中在除以零事件發(fā)生時,所述電路輸出除以零標記和預定的商值中的至少一個。
5.如權(quán)利要求1所述的電路,其中用所述被除數(shù)寫入的所述特定寄存器確定操作模式和數(shù)據(jù)格式中的至少一個。
6.如權(quán)利要求1所述的電路,其中所述歸一化器移位除數(shù)位和被除數(shù)位,并且所述定標器比較所述被除數(shù)的所述移位與所述除數(shù)的所述移位,并且相應地移位商位。
7.如權(quán)利要求1所述的電路,其中所述歸一化器歸一化所述除數(shù)和所述被除數(shù)以使每個在范圍[0.5,1.0)內(nèi)。
8.如權(quán)利要求1所述的電路,其中所述電路計算完整的商和部分商中的至少一個。
9.如權(quán)利要求8所述的電路,其中所述完整的商包括64位并且所述部分商包括24位。
10.如權(quán)利要求1所述的電路,其中所述除法器核心被優(yōu)化用于將歸一化的輸入相除。
11.如權(quán)利要求1所述的電路,其中所述除法器核心以遞減的位有效值順序計算商數(shù)據(jù)塊。
12.如權(quán)利要求1所述的電路,其中所述除法器核心計算每個總線時鐘周期的多個商數(shù)據(jù)塊位。
13.如權(quán)利要求1所述的電路,其中所述除法器核心計算商數(shù)據(jù)塊直到達到預定義的商精度等級。
14.如權(quán)利要求13所述的電路,其中所述商數(shù)據(jù)塊包括六位。
15.如權(quán)利要求1所述的電路,其中所述除法器核心包括Cappa集成陣列除法器(IAD)。
16.如權(quán)利要求1所述的電路,其中所述除法器核心包括通過至少一個移位/加塊序列輸入至少一個除數(shù)位并且序列輸出至少一個商位的移位寄存器, 其中第一移位/加塊最初保存所述被除數(shù), 其中每個移位/加塊計算輸出進位位和輸出和位,每個移位/加塊為兩倍輸入和位加上被除數(shù)位加上根據(jù)輸入進位位值帶符號的除數(shù)位, 其中所述商位為所述輸出進位位,以及 其中所述輸出進位位和所述輸出和位進行至少一個操作:被傳遞給后續(xù)移位/加塊并且被回收到所述第一移位/加塊,以便計算另一商位。
17.如權(quán)利要求1所述的電路,其中所述電路進一步包括從被除數(shù)符號位和除數(shù)符號位的異或計算商符號位的符號校正器。
18.如權(quán)利要求1所述的電路,其中所述輸出寄存器為飽和累加器。
19.一種將兩個輸入二進制數(shù)相除的方法,其包括:歸一化除數(shù)和被除數(shù); 將所述歸一化的輸入相除以產(chǎn)生至少部分商; 逆轉(zhuǎn)所述歸一化;以及 輸出所述至少部分商。
20.如權(quán)利要求19所述的方法,其中所述歸一化縮放所述除數(shù)和所述被除數(shù)以使每個在范圍[0.5,1.0)內(nèi)。
21.如權(quán)利要求19所述的方法,其中所述相除以遞減的位有效值順序逐步產(chǎn)生商數(shù)據(jù)塊直到達到預定義的商精度等級。
22.一種用于將兩個輸入二進制數(shù)相除的系統(tǒng),其包括: 用于歸一化除數(shù)和被除數(shù)的構(gòu)件; 用于將所述歸一化的輸入相除以產(chǎn)生至少部分商的構(gòu)件; 用于逆轉(zhuǎn)所述歸一化的構(gòu)件;以及 用于輸出所述至少部分商的構(gòu)件。
23.如權(quán)利要求22所述的系統(tǒng),其中所述用于歸一化的構(gòu)件縮放所述除數(shù)和所述被除數(shù)以使每個在范圍[0.5,1.0)內(nèi)。
24.如權(quán)利要求22所述的系統(tǒng),其中所述用于相除的構(gòu)件以遞減的位有效值順序逐步產(chǎn)生商數(shù)據(jù)塊直到達到預定義的商精度等級。
【文檔編號】G06F7/535GK103914276SQ201410007454
【公開日】2014年7月9日 申請日期:2014年1月8日 優(yōu)先權(quán)日:2013年1月8日
【發(fā)明者】P·S·威爾金斯 申請人:美國亞德諾半導體公司