本發(fā)明是關(guān)于一種快速除法器,且特別是一種具有高收斂速度的快速除法器,以及其快速除法運算方法。
背景技術(shù):
除法運算是常見的數(shù)值運算,目的在于根據(jù)除數(shù)與被除數(shù)解出商數(shù)。因此,除法器是許多電路在實施時的必要元件。目前除法器常用的除法演算法主要可分成以下幾種:慢速除法運算法(slowdivision)、牛頓-拉弗森除法(newton-raphsondivision)運算法及戈耳斯密特除法(goldschmidtdivision)運算法。
上述三種除法演算法均可用來解出商數(shù)。然而,該些除法演算法尚存在幾個問題。首先,該些除法演算法的收斂速度不夠快,使得除法器需要執(zhí)行多次運算才能讓計算出的結(jié)果逼近于實際的商數(shù)。此外,為了實現(xiàn)該些除法演算法,除法器的硬件成本、硬件面積及復(fù)雜度亦會提高。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種快速除法器。所述快速除法器包括初始參數(shù)設(shè)定單元及運算單元。運算單元耦接于初始參數(shù)設(shè)定單元。初始參數(shù)設(shè)定單元用以接收除數(shù)及被除數(shù),并根據(jù)除數(shù)與被除數(shù)設(shè)定數(shù)列的多個初始參數(shù)。該些初始參數(shù)包括初始項、第一項及公比,且公比的絕對值小于1。運算單元用以儲存數(shù)列的遞回關(guān)系式,并根據(jù)該些初始參數(shù)迭代計算遞回關(guān)系式以獲得商數(shù)。遞回關(guān)系式的第k+1項等于公比加1后與第k項的乘積減去公比與第k-1項的乘積。k為大于等于1的整數(shù)。
本發(fā)明實施例提供一種快速除法運算方法。所述快速除法運算方法包括以下步驟。步驟a:接收除數(shù)及被除數(shù)。步驟b:根據(jù)除數(shù)與被除數(shù)估計 數(shù)列的多個初始參數(shù)。該些初始參數(shù)包括初始項、第一項及公比,且公比的絕對值小于1。步驟c:根據(jù)該些初始參數(shù)迭代計算數(shù)列的遞回關(guān)系式以獲得商數(shù)。遞回關(guān)系式的一第k+1項等于公比加1后與第k項的乘積減去公比與第k-1項的乘積,且k為大于等于1的整數(shù)。
綜上所述,本發(fā)明所提供的快速除法器及其快速除法運算方法可以僅使用加法、減法、乘法及位元移位來計算除法運算中的商數(shù),以降低計算的復(fù)雜度、硬件的復(fù)雜度、硬件面積及成本。此外,本發(fā)明所提供的快速除法器及其快速除法運算方法具有高收斂速度,快速除法器僅需執(zhí)行少量的迭代計算即可獲得逼近于實際商數(shù)的迭代結(jié)果。
為使能更進一步了解本發(fā)明的特征及技術(shù)內(nèi)容,請參閱以下有關(guān)本發(fā)明的詳細說明與附圖,但是此等說明與所附圖式僅系用來說明本發(fā)明,而非對本發(fā)明的權(quán)利范圍作任何的限制。
附圖說明
圖1是本發(fā)明實施例提供的快速除法器的示意圖。
圖2是本發(fā)明實施例提供的快速除法運算方法的流程圖。
圖3是本發(fā)明實施例提供的估計遞回關(guān)系式的第一項的示意圖。
圖4是本發(fā)明實施例提供的迭代計算遞回關(guān)系式的流程圖。
附圖標記說明:
1:快速除法器
10:初始參數(shù)設(shè)定單元
11:運算單元
s201~s204:步驟流程
s401~s404:步驟流程
具體實施方式
請參閱圖1,圖1是本發(fā)明實施例提供的快速除法器的示意圖??焖俪ㄆ?包括初始參數(shù)設(shè)定單元10及運算單元11。運算單元11耦接于初始 參數(shù)設(shè)定單元10。
初始參數(shù)設(shè)定單元10用以接收一除數(shù)d及一被除數(shù)n,并根據(jù)除數(shù)d與被除數(shù)n設(shè)定一數(shù)列的多個初始參數(shù)。數(shù)列包括多項,該些初始參數(shù)包括數(shù)列的一初始項a0、一第一項a1及一公比r。公比r的絕對值小于1(即|r|<1)。
運算單元11用以儲存數(shù)列的一遞回關(guān)系式,并根據(jù)該些初始參數(shù)迭代計算遞回關(guān)系式以獲得商數(shù)q。運算單元11將遞回關(guān)系式設(shè)計成一第k+1項ak等于公比r加1(即r+1)與一第k項ak的乘積減去公比r與一第k-1項ak-1的乘積,且k為大于等于1的整數(shù)。附帶一提,遞回關(guān)系式的特征方程式的根分別為1及公比r。遞回關(guān)系式的詳細方程式如下:
簡而言之,運算單元11可以將除法運算轉(zhuǎn)換為遞回關(guān)系式,并迭代計算遞回關(guān)系式,使得計算出的迭代結(jié)果逼近于實際的商數(shù)q。由上述遞回關(guān)系式可知,運算單元11系使用加法、減法、乘法及位元移位(shift)來計算商數(shù)q,而沒有使用除法運算。如此一來,快速除法器1的硬件成本與復(fù)雜度可以降低。
所屬領(lǐng)域技術(shù)人員應(yīng)能知曉,遞回關(guān)系式可以計算出特征方程式,并將遞回關(guān)系式內(nèi)的每一項表示成由方程式的根組成的通式。以數(shù)列的第k項ak來說,第k項ak可以表示成第一系數(shù)α、第二系數(shù)β及公比r的組合。詳細方程式如下:
ak=α+βrk方程式(2)
通過不停的進行迭代計算,將第k項ak近似于真實的商數(shù)q。也就是說,第k項ak在k趨近無限大時可以表示成以下方程式:
由此可見,在執(zhí)行多次迭代計算后,第一系數(shù)α將會近似于商數(shù)q。而第一系數(shù)α與第二系數(shù)β的數(shù)值相關(guān)于遞回關(guān)系式的初始項a0、第一項a1及公比r。因此,初始參數(shù)設(shè)定單元10如何設(shè)計初始項a0、第一項a1及公 比r將影響快速除法器1的收斂速度。該些初始參數(shù)被估計的越精準,運算單元11計算出的迭代結(jié)果會越快逼近商數(shù)q。收斂速度越快,快速除法器1每一次進行迭代計算所得到的迭代結(jié)果會越快速地逼近商數(shù)q。而初始參數(shù)設(shè)定單元10如何設(shè)計該些初始參數(shù)將于下方段落作進一步介紹。
為了進一步說明快速除法器1的運作流程,請配合參閱圖2,圖2是本發(fā)明實施例提供的快速除法運算方法的流程圖。圖2的快速除法運算方法適用于圖1的快速除法器1。于步驟s201,快速除法器1接收除數(shù)d及被除數(shù)n。為方便說明,本實施例假設(shè)除數(shù)d為正數(shù),而被除數(shù)n為1。若被除數(shù)n不為1,運算單元11最后將計算出的商數(shù)q乘上被除數(shù)n即為真正的商數(shù)。
于步驟s202,初始參數(shù)設(shè)定單元10設(shè)定遞回關(guān)系式的初始參數(shù)。具體來說,初始參數(shù)設(shè)定單元10將初始項a0設(shè)為0,并將第一項a1設(shè)為一第一函數(shù)g(d)除以2的一第二函數(shù)f(d)次冪(如下述方程式(4))。此外,初始參數(shù)設(shè)定單元10還將公比r設(shè)為1減去第一項a1與除數(shù)d的乘積(如下述方程式(5))。需注意的是,第一函數(shù)g(d)及第二函數(shù)f(d)滿足公比的絕對值|r|小于1。
接著,將k=0、1分別代入方程式(2),可以得到以下兩個方程式:
a0=α+β方程式(6)
a1=α+βr方程式(7)
將方程式(6)乘上r在與方程式(7)相減,可以獲得以下方程式:
將a0、a1及r代入方程式(8),可以將第一系數(shù)α化簡為
根據(jù)以上內(nèi)容可知,本發(fā)明將設(shè)計的初始項a0、第一項a1及公比r可以滿足第一系數(shù)α近似于商數(shù)q。
值得一提的是,由于公比r=1-a1d,初始參數(shù)設(shè)定單元10估計的第一項a1越接近1/d,公比的絕對值|r|越接近0,使得遞回關(guān)系式的收斂速度越快。因此,第一函數(shù)g(d)與第二函數(shù)f(d)的設(shè)計將影響遞回關(guān)系式的收斂速度。
為了說明如何設(shè)計第一函數(shù)g(d)與第二函數(shù)f(d)來估計第一項a1,請配合參閱圖3,圖3是本發(fā)明實施例提供的估計遞回關(guān)系式的第一項的示意圖。圖3中包括方程式y(tǒng)=1/x。本發(fā)明的快速除法器1是以線性方程式來近似方程式y(tǒng)=1/x,以找出最接近于除數(shù)d的x值,進而獲得商數(shù)q。需注意的是,方程式y(tǒng)=1/x是用以舉例說明初始參數(shù)設(shè)定單元10如何估計第一項a1,并非用以限制本發(fā)明。
除數(shù)d是介于2的s次冪至2的s+1次冪之間(即2s≦d<2s+1),且s為整數(shù)。在收到除數(shù)d后,初始參數(shù)設(shè)定單元10先判斷最接近于除數(shù)d且小于等于除數(shù)d的2s的次冪數(shù),以獲得s的數(shù)值。
接著,初始參數(shù)設(shè)定單元10取線性方程式x=2s與方程式y(tǒng)=1/x的交點,并以此交點作為切點計算出第一切線y1的線性方程式(如下述方程式(10))。
同樣地,初始參數(shù)設(shè)定單元10取線性方程式x=2s+1與方程式y(tǒng)=1/x的交點,并以此交點作為切點計算出第二切線y2的線性方程式(如下述方程式(11))。
再來,初始參數(shù)設(shè)定單元10計算第一切線y1與第二切線y2的交點,并得到交點的x軸坐標為2s+2/3。
初始參數(shù)設(shè)定單元10根據(jù)除數(shù)d的數(shù)值判斷如何估計第一項a1。當(dāng)除數(shù)d位于線性方程式x=2s+2/3的左側(cè),以第一切線y1來估計第一項a1會比較快速地收斂至實際的商數(shù)q。反之,當(dāng)除數(shù)d位于線性方程式x=2s+2/3的右側(cè),以第二切線y2來估計第一項a1會比較快速地收斂至實際的商數(shù)q。
為了使第一項a1接近于1/d,本發(fā)明的快速除法器1定義了第一函數(shù)g(d)與第二函數(shù)f(d)。當(dāng)除數(shù)d乘上3小于等于2的s+2次冪時,第一函數(shù)g(d)等于2的s+1次冪減去除數(shù)d,且第二函數(shù)f(d)等于s乘上2。另一方面,當(dāng)除數(shù)d乘上3大于2的s+2次冪,第一函數(shù)g(d)等于2的s+2次冪減去除數(shù)d,且第二函數(shù)f(d)等于s乘上2再加2。第一函數(shù)g(d)與第二函數(shù)f(d)的詳細方程式如下:
本發(fā)明的快速除法器1根據(jù)除數(shù)d的數(shù)值大小改變第一函數(shù)g(d)與第二函數(shù)f(d),進而調(diào)整第一項a1的大小,使得第一項a1接近實際的商數(shù)q。相較于傳統(tǒng)的除法器系從x=2s或2s+1開始逼近商數(shù)q,本發(fā)明的快速除法器1以第一項a1來估計商數(shù)q的收斂速度較快。
舉例來說,當(dāng)除數(shù)d為100,快速除法器1判斷s為6,且3*(100)大于28。上述的方程式(12)、(13),第一函數(shù)g(d)為156,而第二函數(shù)f(d)為 14。接著,根據(jù)上述的方程式(4),快速除法器1將第一項a1設(shè)定為156/214。相較于傳統(tǒng)的除法器系從1/64或1/128開始逼近1/100,本發(fā)明的快速除法器1從第一項a1開始進行迭代計算可以使得計算出的迭代結(jié)果更快速地收斂至1/100。
接著,復(fù)參閱圖2,于步驟s203,初始參數(shù)設(shè)定單元10輸出該些初始參數(shù)。運算單元11根據(jù)該些初始參數(shù)迭代計算遞回關(guān)系式,使得每一次進行迭代計算所獲得的迭代結(jié)果逼近于實際的商數(shù)q。于步驟s204,運算單元11輸出商數(shù)q至后端的電路,以完成快速除法運算方法。
為了快速地得到商數(shù)q,本發(fā)明實施例更提出一種快速計算遞回關(guān)系式的方法。請參閱圖4,圖4是本發(fā)明實施例提供的迭代計算遞回關(guān)系式的流程圖。圖4的計算方法適用于圖1的運算單元11。于步驟s401,運算單元11將遞回關(guān)系式轉(zhuǎn)換為矩陣形式。詳細表示如下:
根據(jù)上述方程式(14),在運算單元11進行迭代計算的過程中,若
因此,為了讓運算單元11計算出的迭代結(jié)果快速逼近真實的商數(shù)q,運算單元11定義一參數(shù)矩陣mt。參數(shù)矩陣mt內(nèi)的多個元素(element)相關(guān)于公比r,且參數(shù)矩陣mt隨著執(zhí)行迭代計算的次數(shù)而改變。當(dāng)執(zhí)行第t次迭代計算,參數(shù)矩陣mt等于執(zhí)行前一次迭代計算所對應(yīng)的參數(shù)矩陣mt-1的平方。詳細表示如下:
其中,t為運算單元11執(zhí)行迭代計算的次數(shù)。
根據(jù)上述的方程式(15),參數(shù)矩陣mt可以被改寫成以下形式:
運算單元11執(zhí)行第t次迭代計算的迭代結(jié)果可以表示成參數(shù)矩陣mt乘上第一項a1及初始項a0所形成的矩陣。詳細方程式如下:
根據(jù)上述的方程式(16),參數(shù)矩陣mt的次冪數(shù)系隨著執(zhí)行迭代計算的次數(shù)成指數(shù)成長,使得參數(shù)矩陣mt快速地逼近于
于步驟s402,運算單元11對參數(shù)矩陣mt執(zhí)行對角化并改寫參數(shù)矩陣mt。具體來說,參數(shù)矩陣mt執(zhí)行對角化后如下形式:
接著,將對角化后的參數(shù)矩陣mt乘開,參數(shù)矩陣mt可以被改寫為以下形式:
于步驟s403,運算單元11取改寫后的參數(shù)矩陣mt的其中一個元素作為迭代系數(shù)mt,并根據(jù)迭代系數(shù)mt來改寫遞回關(guān)系式。于本實施例中,運算單元11系取
當(dāng)t>0時,迭代系數(shù)mt可以表示成
根據(jù)上述的方程式(20),迭代系數(shù)mt表示為以下形式:
另一方面,配合前述的方程式(17)、(19),遞回關(guān)系式可以進一步被化簡成以下形式:
也就是說,上述的方程式(1)所示的遞回關(guān)系式可以被化簡成僅需要初 始項a0、第一項a1及公比r即可進行迭代計算。
于步驟s404,運算單元11根據(jù)上述方程式(22)的遞回關(guān)系式進行迭代計算,以獲得第t次迭代計算的迭代結(jié)果
綜上所述,本發(fā)明所提供的快速除法器及其快速除法運算方法可以僅使用加法、減法、乘法及位元移位來計算除法運算中的商數(shù),以降低計算的復(fù)雜度、硬件的復(fù)雜度、硬件面積及成本。此外,本發(fā)明所提供的快速除法器及其快速除法運算方法具有高收斂速度,快速除法器僅需執(zhí)行少量的迭代計算即可獲得逼近于實際商數(shù)的迭代結(jié)果。
以上所述,僅為本發(fā)明最佳的具體實施例,而本發(fā)明的特征并不局限于此,任何本領(lǐng)域技術(shù)人員在本發(fā)明的領(lǐng)域內(nèi),可輕易思及的變化或修飾,皆可涵蓋在以下本案的專利范圍。