两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

復(fù)數(shù)對(duì)數(shù)運(yùn)算alu的制作方法

文檔序號(hào):6655968閱讀:834來(lái)源:國(guó)知局
專利名稱:復(fù)數(shù)對(duì)數(shù)運(yùn)算alu的制作方法
技術(shù)領(lǐng)域
本發(fā)明總體上涉及計(jì)算和數(shù)字信號(hào)處理,更具體地涉及算術(shù)邏輯單元(ALU)中的流水線化(pipelined)對(duì)數(shù)運(yùn)算。
背景技術(shù)
ALU傳統(tǒng)上用于實(shí)現(xiàn)對(duì)實(shí)數(shù)和/或復(fù)數(shù)的諸如加法、減法、乘法、除法等的各種運(yùn)算功能。常規(guī)系統(tǒng)使用定點(diǎn)或浮點(diǎn)數(shù)ALU。還已知利用具有受限精度的實(shí)對(duì)數(shù)的ALU。例如,參見(jiàn)“Digital filtering using logarithmicarithmetic”(N.G.Kingsbury and P.J.W.Rayner,Electron.Lett.(Jan.28,1971),Vol.7,No.2,pp.56-58)?!癆rithmetic on the European LogarithmicMicroprocessor”(J.N.Coleman,E.I.Chester,C.I.Softley and J.Kadlec,(July2000)IEEE Trans.Comput.,Vol.49,No.7,pp.702-715)提供了針對(duì)實(shí)數(shù)的高精度(32位)對(duì)數(shù)單元的另一示例。
定點(diǎn)編程給編程人員造成了特別是在乘法或除法運(yùn)算之后腦力確定十進(jìn)制小數(shù)點(diǎn)的位置的負(fù)擔(dān)。例如,假設(shè)FIR過(guò)濾器涉及利用加權(quán)因子-0.607、1.035、-0.607……對(duì)信號(hào)采樣的加權(quán)加法,所述加權(quán)因子必須被指定到千分之一的精度。在定點(diǎn)運(yùn)算中,例如,必需用1035表示1.035。結(jié)果,信號(hào)采樣與該數(shù)值相乘將結(jié)果的字長(zhǎng)擴(kuò)展了10位。為了按相同的存儲(chǔ)器字長(zhǎng)存儲(chǔ)該結(jié)果,那么,必需丟棄10位;然而,是應(yīng)當(dāng)丟棄MSB(最高有效位)還是應(yīng)當(dāng)丟棄LSB(最低有效位),還是應(yīng)當(dāng)放棄每個(gè)中的一些,取決于信號(hào)數(shù)據(jù)譜(signal data spectrum),而這必須通過(guò)利用現(xiàn)實(shí)數(shù)據(jù)的仿真來(lái)確定。這使得對(duì)正確編程的驗(yàn)證變得費(fèi)力了。
引入了浮點(diǎn)處理器,以通過(guò)借助于與每個(gè)存儲(chǔ)的數(shù)值的“尾數(shù)”部分相關(guān)聯(lián)的“指數(shù)”部分,自動(dòng)確定小數(shù)點(diǎn),來(lái)克服腦力確定小數(shù)點(diǎn)的不便。IEEE標(biāo)準(zhǔn)浮點(diǎn)格式是
SEEEEEEEE.MMMMMMMMMMMMMMMMMMMMMMM其中,S是值的符號(hào)(0=+,1=-),EEEEEEEE是8位指數(shù),而MMM…MM是23位尾數(shù)。對(duì)于IEEE標(biāo)準(zhǔn)浮點(diǎn)格式,尾數(shù)的第24個(gè)最高有效位總是1(除了真零之外),由此被省略了。在IEEE格式中,尾數(shù)的實(shí)際值因而是1.MMMMMMMMMMMMMMMMMMMMMMM例如,底數(shù)為2的對(duì)數(shù)數(shù)值-1.40625×10-2=-1.8×2-7,可以按IEEE標(biāo)準(zhǔn)格式表示為1 01111000.11001100110011001100110。
而且,零指數(shù)是01111111,由此數(shù)值+1.0可以寫為0 01111111.00000000000000000000000表示真零需要負(fù)無(wú)窮大指數(shù),這是不實(shí)用的,因此,通過(guò)把全零位模式(all zeros bit pattern)解釋成真零而非2-127,來(lái)生成人工零。
為了將兩個(gè)浮點(diǎn)數(shù)相乘,利用定點(diǎn)24×24位乘法器(其是具有適度高復(fù)雜性和延遲的邏輯)將被抑制的MSB 1歸位后(replaced)的尾數(shù)相乘,同時(shí)將指數(shù)相加,并減去偏移量127中的一個(gè)。接著,必須將相乘后的48位結(jié)果截取成24位,并且在向左對(duì)齊(left-justification)之后刪除最高有效位1。由此,與針對(duì)定點(diǎn)數(shù)的乘法相比,針對(duì)浮點(diǎn)數(shù)的乘法甚至更復(fù)雜。
為了將兩個(gè)浮點(diǎn)數(shù)相加,首先,必須將它們的指數(shù)相減,以了解它們的小數(shù)點(diǎn)是否對(duì)準(zhǔn)。如果小數(shù)點(diǎn)沒(méi)有對(duì)準(zhǔn),則選擇較小的數(shù)右移等于指數(shù)差的多個(gè)二進(jìn)制位置,以在將尾數(shù)相加之前對(duì)準(zhǔn)小數(shù)點(diǎn),從而將隱含的1歸位。為了快速執(zhí)行移位,可以使用桶形移位器(barrel shifter),其在結(jié)構(gòu)和復(fù)雜性上類似于定點(diǎn)乘法器。在相加更具體地說(shuō)在相減之后,必須把前面的零左移出尾數(shù),而使指數(shù)遞增。因而,在浮點(diǎn)運(yùn)算中,加法和減法也是復(fù)雜的運(yùn)算。
在純線性格式下,針對(duì)定點(diǎn)數(shù)的加法和減法是簡(jiǎn)單的,但乘法、除法、平方以及平方根更復(fù)雜。乘法器被構(gòu)造成一系列“移位和條件相加”電路,這些“移位和條件相加”電路固有地具有大量邏輯延遲。快速處理器可以使用流水線(pipelining)來(lái)克服這種延遲,但是這通常使編程復(fù)雜化了。由此,最小化快速處理器中的流水線延遲是有意義的。
應(yīng)當(dāng)注意到,浮點(diǎn)數(shù)表示是對(duì)數(shù)與線性表示之間的混合。指數(shù)是數(shù)值的以2為底數(shù)的對(duì)數(shù)的整數(shù)部分,而尾數(shù)是線性小數(shù)部分。因?yàn)閷?duì)于線性表示來(lái)說(shuō)乘法是復(fù)雜的,而對(duì)于對(duì)數(shù)表示來(lái)說(shuō)加法是復(fù)雜的,所以這說(shuō)明了為什么對(duì)于混合浮點(diǎn)表示來(lái)說(shuō),兩者都是復(fù)雜的。為了克服這一問(wèn)題,一些已知的系統(tǒng),如在上面引述的系統(tǒng),已經(jīng)使用了純對(duì)數(shù)表示。這解決了確定小數(shù)點(diǎn)的問(wèn)題并簡(jiǎn)化了乘法,僅剩下加法是復(fù)雜的。在現(xiàn)有技術(shù)中,利用查尋表來(lái)執(zhí)行對(duì)數(shù)加法。然而,表的大小局限性把這種解決方案限于受限的字長(zhǎng),例如限于0-24位的范圍。在上述對(duì)Coleman的引用中,利用需要乘法器的插值技術(shù),以合理大小的查尋表實(shí)現(xiàn)了32位精度。這樣,Coleman處理仍包括與乘法有關(guān)的復(fù)雜性。
雖然現(xiàn)有技術(shù)描述了用于實(shí)現(xiàn)實(shí)數(shù)對(duì)數(shù)運(yùn)算的各種方法和裝置,但是現(xiàn)有技術(shù)沒(méi)有提供針對(duì)復(fù)數(shù)運(yùn)算的查尋表解決方案,而復(fù)數(shù)運(yùn)算在無(wú)線電信號(hào)處理中是有用的。而且,現(xiàn)有技術(shù)沒(méi)有提供具有共用的實(shí)數(shù)和復(fù)數(shù)處理能力的ALU。因?yàn)闊o(wú)線電信號(hào)處理通常既需要復(fù)數(shù)處理能力又需要實(shí)數(shù)處理能力,所以在具有大小和/或功率問(wèn)題的無(wú)線通信裝置中,同時(shí)實(shí)現(xiàn)實(shí)數(shù)和復(fù)數(shù)對(duì)數(shù)運(yùn)算的單個(gè)ALU將是有益的。

發(fā)明內(nèi)容
本發(fā)明涉及對(duì)按對(duì)數(shù)格式表示的實(shí)數(shù)和/或復(fù)數(shù)執(zhí)行算術(shù)運(yùn)算的算術(shù)邏輯單元(ALU)。利用對(duì)數(shù)數(shù)值表示簡(jiǎn)化了乘法和除法運(yùn)算,但是使得加法和減法更困難了。然而,可以利用如下所討論的已知算法簡(jiǎn)化兩個(gè)輸入運(yùn)算數(shù)的和或差的對(duì)數(shù)。在下面的討論中,假定a>b,并且c=a+b。可以表示C=logq(c)=logq(a+b)=A+logq(1+q-r)(1)其中,q是對(duì)數(shù)的底數(shù),r=A-B,A=logq(a),而B=logq(b)。公式(1)表示的運(yùn)算(在此稱為對(duì)數(shù)加法(logadd))允許僅利用加法和減法運(yùn)算來(lái)計(jì)算a和b的和的對(duì)數(shù),其中,利用查尋表來(lái)確定logq(1+q-r)的值。
在一個(gè)示范實(shí)施例中,本發(fā)明提供了一種用于對(duì)按對(duì)數(shù)極坐標(biāo)(logpolar)格式表示的復(fù)數(shù)型輸入運(yùn)算數(shù)執(zhí)行對(duì)數(shù)運(yùn)算的ALU。例如,A=logq(a)=(R1,θ1)而B=logq(b)=(R2,θ2),其中,R和θ分別表示對(duì)數(shù)幅值(logmagnitude)和相角,這在下面將進(jìn)一步討論。根據(jù)該實(shí)施例,ALU包括存儲(chǔ)器和處理器。存儲(chǔ)器存儲(chǔ)為確定按對(duì)數(shù)極坐標(biāo)格式表示的復(fù)數(shù)的對(duì)數(shù)而使用的查尋表,而處理器利用存儲(chǔ)的查尋表生成按對(duì)數(shù)極坐標(biāo)格式表示的復(fù)數(shù)型輸入運(yùn)算數(shù)的輸出對(duì)數(shù)。
在另一示范實(shí)施例中,本發(fā)明提供了一種用于對(duì)按對(duì)數(shù)格式表示的實(shí)數(shù)和復(fù)數(shù)執(zhí)行對(duì)數(shù)運(yùn)算的ALU。根據(jù)該實(shí)施例的示范ALU也包括存儲(chǔ)器和處理器。存儲(chǔ)器存儲(chǔ)兩個(gè)查尋表,一個(gè)查尋表用于確定實(shí)數(shù)的對(duì)數(shù),而另一個(gè)查尋表用于確定復(fù)數(shù)的對(duì)數(shù)。處理器包括共用處理器,該共用處理器利用針對(duì)實(shí)數(shù)型輸入運(yùn)算數(shù)的實(shí)數(shù)查尋表和針對(duì)復(fù)數(shù)型輸入運(yùn)算數(shù)的復(fù)數(shù)查尋表,基于按對(duì)數(shù)格式表示的輸入運(yùn)算數(shù)來(lái)生成輸出對(duì)數(shù)。
在任何情況下,根據(jù)本發(fā)明的一個(gè)示范實(shí)施例,處理器可以包括蝶式電路,該蝶式電路被設(shè)置成,同時(shí)生成針對(duì)對(duì)數(shù)加法運(yùn)算和對(duì)數(shù)減法(logsub)運(yùn)算的輸出對(duì)數(shù)。根據(jù)另一示范實(shí)施例,處理器可以包括查尋控制器和輸出累加器,其中,查尋控制器基于查尋表計(jì)算一個(gè)或更多個(gè)部分輸出(partial output)。所述部分輸出可以在一次或更多次迭代期間確定,或者可以在流水線的一個(gè)或更多個(gè)階段期間確定。輸出累加器基于所述部分輸出生成輸出對(duì)數(shù)。


圖1例示了針對(duì)實(shí)數(shù)的IEEE浮點(diǎn)格式與真對(duì)數(shù)格式之間的標(biāo)繪圖比較。
圖2例示了針對(duì)實(shí)數(shù)的IEEE浮點(diǎn)格式與真對(duì)數(shù)格式之間的圖表比較。
圖3例示了線性插值器的框圖。
圖4例示了真F函數(shù)與指數(shù)近似之間的標(biāo)繪圖比較。
圖5A和5B分別例示了針對(duì)對(duì)數(shù)極坐標(biāo)表示法和笛卡兒坐標(biāo)表示的量化區(qū)。
圖6例示了用于同時(shí)執(zhí)行對(duì)數(shù)加法運(yùn)算和對(duì)數(shù)減法運(yùn)算的一個(gè)示范ALU的框圖。
圖7例示了利用圖6中的ALU來(lái)實(shí)現(xiàn)16點(diǎn)FFT。
圖8例示了根據(jù)本發(fā)明的示范ALU的框圖。
圖9例示了用于圖8的ALU的示范查尋控制器的框圖。
圖10例示了根據(jù)本發(fā)明的示范ALU的附加細(xì)節(jié)。
圖11A-11C例示了相對(duì)于實(shí)數(shù)的針對(duì)復(fù)數(shù)的不同分配。
具體實(shí)施例方式
本發(fā)明提供了一種用于對(duì)采用對(duì)數(shù)格式的復(fù)數(shù)和/或?qū)崝?shù)執(zhí)行對(duì)數(shù)運(yùn)算的ALU。在一個(gè)實(shí)施例中,ALU利用一個(gè)或更多個(gè)查尋表對(duì)按對(duì)數(shù)極坐標(biāo)格式表示的復(fù)數(shù)執(zhí)行對(duì)數(shù)運(yùn)算。在另一實(shí)施例中,ALU分別利用至少一個(gè)復(fù)數(shù)查尋表和至少一個(gè)實(shí)數(shù)查尋表,對(duì)按對(duì)數(shù)格式表示的復(fù)數(shù)和實(shí)數(shù)執(zhí)行對(duì)數(shù)運(yùn)算。為了更好地理解本發(fā)明的細(xì)節(jié)和有益效果,下面,首先提供有關(guān)數(shù)值表示、常規(guī)插值、迭代對(duì)數(shù)運(yùn)算、高精度迭代對(duì)數(shù)加法、高精度迭代對(duì)數(shù)減法以及指數(shù)近似的細(xì)節(jié)。
數(shù)值表示在ALU中實(shí)現(xiàn)的對(duì)數(shù)運(yùn)算通常需要特定的數(shù)值格式。如上所述,常規(guī)處理器可以按定點(diǎn)二進(jìn)制格式或浮點(diǎn)格式來(lái)格式化實(shí)數(shù)或復(fù)數(shù)。如上所述,定點(diǎn)格式是純線性格式。因此,針對(duì)定點(diǎn)數(shù)值的加法和減法是簡(jiǎn)單的,而乘法則更復(fù)雜。浮點(diǎn)數(shù)值是對(duì)數(shù)表示與線性表示之間的混合。因此,加法、減法、乘法以及除法在浮點(diǎn)格式中都是復(fù)雜的。為了克服與這些格式有關(guān)的一些困難,可以與合適的算法一起使用純對(duì)數(shù)格式,來(lái)解決與對(duì)數(shù)格式有關(guān)的加法和減法問(wèn)題。下面提供了與可以適用于本發(fā)明的純對(duì)數(shù)格式有關(guān)的附加細(xì)節(jié)。
采用純對(duì)數(shù)格式的實(shí)數(shù)可以簡(jiǎn)寫為(S8.23),從而表示為S xxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx
可以使用兩個(gè)這種實(shí)數(shù)作為一種表示復(fù)數(shù)的方式。然而,如下進(jìn)一步所述,對(duì)數(shù)極坐標(biāo)格式可能是更有利的表示復(fù)數(shù)的方式。
用于對(duì)數(shù)的底數(shù)可任意選擇。然而,存在選擇一個(gè)底數(shù)勝過(guò)選擇另一個(gè)底數(shù)的優(yōu)點(diǎn)。例如選擇底數(shù)2具有許多優(yōu)點(diǎn)。首先,如公式(2)所示,32位純對(duì)數(shù)格式看上去基本上與(S8.23)IEEE浮點(diǎn)表示相同。
純對(duì)數(shù)Sxx…xx.xx…xx(-1)s×2-xx...xx..xx...xxIEEESEE…EE.MM…MM(-1)s×(1+0.MM…MM)×2-EE...EE(2)針對(duì)底數(shù)2的對(duì)數(shù)的整數(shù)部分和在IEEE格式中一樣可以偏移127,使得數(shù)值1.0按任一格式都表示為0 01111111.00000000000000000000000另選的是,可以使用128的偏移量,在此情況下1.0表示為0 10000000.00000000000000000000000利用127或128作為優(yōu)選偏移量是實(shí)現(xiàn)上的事。
和采用IEEE浮點(diǎn)格式一樣,可以把全零模式定義為人工真零。事實(shí)上,如果使用相同指數(shù)偏移量(127),則對(duì)于例如4、2、1、0.5等作為2的冪的所有數(shù)值來(lái)說(shuō),這種純對(duì)數(shù)格式與IEEE格式一致,并且每個(gè)的尾數(shù)部分僅在2的冪之間稍微不同,如圖1所示。
對(duì)于純對(duì)數(shù)格式,最大可表示值是0 11111111.11111111111111111111111對(duì)于底數(shù)為2,其表示大致256減去偏移量127后的對(duì)數(shù),即,表示大致2129或6.81×1038的數(shù)值。
最小可表示值是0 00000000.00000000000000000000000對(duì)于底數(shù)為2,其表示等于-127的對(duì)數(shù),其是5.88×10-39。如果需要,則該全零格式可以和IEEE情況中一樣得以保留,以表示人工真零。在這種情況下,最小可表示數(shù)值是0 00000000.00000000000000000000001其是等于大致-127的底數(shù)為2的對(duì)數(shù),其仍對(duì)應(yīng)于大約5.88×10-39。
具有在1到2之間的值的IEEE尾數(shù)的量化精度,是LSB值2-23,即2-23到2-24(0.6到1.2×10-7)之間的精度。按底數(shù)為2的對(duì)數(shù)格式表示數(shù)值x的精度是按對(duì)數(shù)形式的常數(shù)2-23,其給出了dx/x=loge(2)×2-23或0.83×10-7,這稍微好于IEEE量化精度的平均水平。
在另一實(shí)現(xiàn)中,可以使用針對(duì)其它底數(shù)(如底數(shù)為e)的對(duì)數(shù)。對(duì)于底數(shù)為e來(lái)說(shuō),那么,實(shí)數(shù)可以存儲(chǔ)為由以下表示的32位的符號(hào)加對(duì)數(shù)幅值格式S xxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxx或縮寫為(S7.24)。由于底數(shù)較大(e=2.718),所以小數(shù)點(diǎn)左邊的較少的位數(shù)就足以給出充分的動(dòng)態(tài)范圍,而為達(dá)到相等或更好的精度在小數(shù)點(diǎn)右邊需要一個(gè)附加位,這在下面將進(jìn)一步討論。
對(duì)數(shù)幅值部分可以是帶符號(hào)的定點(diǎn)量,其中最左邊的位是符號(hào)位,不要將該符號(hào)位與所表示的數(shù)值的符號(hào)S相混淆。另選的是,對(duì)數(shù)幅值部分可以偏移+64(或+63),使得位模式0 1000000.000000000000000000000000表示零對(duì)數(shù)(數(shù)值=1.0)。在后一情況下,最大可表示數(shù)值具有底數(shù)為e的對(duì)數(shù)0 1111111.111111111111111111111111其大致是128減去偏移量64,即,e64或6.24×1027,而倒數(shù)表示最小可表示數(shù)。公式(3)表示底數(shù)為e的對(duì)數(shù)表示的量化精度。
dxx=2-24=0.6×10-7---(3)]]>圖2對(duì)IEEE浮點(diǎn)格式(具有+127的偏移量)與底數(shù)e格式(具有+64的偏移量)以及底數(shù)2格式(具有+127的偏移量)進(jìn)行了比較。
選擇底數(shù)實(shí)際上等同于在固定字長(zhǎng)內(nèi)確定動(dòng)態(tài)范圍與精度之間的折衷,并且等同于按小于一個(gè)整數(shù)位的步長(zhǎng)移動(dòng)小數(shù)點(diǎn)。選擇底數(shù)2或4或(通常為22N,其中,N是正整數(shù)或負(fù)整數(shù))等同于把小數(shù)點(diǎn)移動(dòng)正N位位置或負(fù)N位位置,同時(shí)給出相同的性能。然而,選擇底數(shù)8不等同于把小數(shù)點(diǎn)移動(dòng)整數(shù)個(gè)位置,因?yàn)樗鼘?duì)數(shù)除以3。換句話說(shuō),選擇對(duì)數(shù)底數(shù)在數(shù)學(xué)上等同于改變二進(jìn)制小數(shù)點(diǎn)的右邊與左邊之間的位的劃分,這將改變精度與動(dòng)態(tài)范圍之間的折衷。然而,小數(shù)點(diǎn)可以僅按步移位,而底數(shù)可以連續(xù)改變。在帶符號(hào)的對(duì)數(shù)幅值的情況下,(這相對(duì)于無(wú)符號(hào)的127偏移量對(duì)數(shù)幅值),通過(guò)將符號(hào)位稱為對(duì)數(shù)幅值的符號(hào)而將該符號(hào)位與數(shù)值的符號(hào)(S位)區(qū)分開(kāi)來(lái)。為進(jìn)一步澄清此問(wèn)題,考慮以10為底數(shù)的對(duì)數(shù),log10(3)=0.4771,而log10(1/3)=-0.4771。因而,為了用對(duì)數(shù)表示+3的值,數(shù)值及其對(duì)數(shù)的符號(hào)都是+,這可以寫成++0.4771。下表例示了這一記法。

為了確保所有對(duì)數(shù)表示都是正的,可以使用偏移表示。例如,如果是按數(shù)量比選定數(shù)值(例如0.0001)大多少倍的對(duì)數(shù)來(lái)代替表示該數(shù)量,則3的表示是log10(3/0.0001)=4.4771,而1/3的表示是log10(0.3333/0.0001)=3.5229。由于偏移,導(dǎo)致兩者現(xiàn)在都是正的。0.0001的表示是log(0.0001/0.0001)=0。那么,全零位模式表示最小可能量0.0001。
傳統(tǒng)的對(duì)數(shù)表需要存儲(chǔ)針對(duì)0.0000到0.9999之間的對(duì)數(shù)的10000個(gè)數(shù)值以查尋反對(duì)數(shù),和針對(duì)相同精度的用于獲得對(duì)數(shù)的類似量??梢允褂脤?duì)數(shù)恒等式來(lái)縮減查尋表的大小。例如,log10(3)=0.4771,log10(2)=0.3010。據(jù)此,可以立即推導(dǎo)出log10(6)=log10(2×3)=log10(3)+log10(2)=0.4771+0.3010=0.7781。
還可以立即推導(dǎo)出log10(1.5)=log10(3/2)=log10(3)-log10(2)=0.4771-0.3010=0.1761然而,不能通過(guò)對(duì)給定數(shù)值0.4771和0.3010的任何簡(jiǎn)單運(yùn)算立即推導(dǎo)出log10(5)=log10(2+3)=0.6990。
更不明顯的是,可以怎樣根據(jù)3和2的對(duì)數(shù)推導(dǎo)出log10(1)=log10(3-2)=0。
為了解決該問(wèn)題,可以使用基于對(duì)數(shù)加法函數(shù)Fa的查尋表。例如,可以通過(guò)將log10(3)和log10(2)中的較大者(即,0.4771)與它們之差的函數(shù)Fa[log10(3)-log10(2)]=Fa(0.1761)相加,來(lái)獲得(2+3)的對(duì)數(shù),其中,對(duì)于底數(shù)10來(lái)說(shuō)Fa(x)=log10(1+10-x) (4)類似地,可以通過(guò)從log10(3)和log10(2)中的較大者減去函數(shù)Fs(0.1761),來(lái)獲得3-2的對(duì)數(shù),其中,對(duì)于底數(shù)10來(lái)說(shuō),F(xiàn)s(x)是Fs(x)=log10(1-10-x) (5)然而,用于Fa(x)和Fs(x)的查尋表仍需要針對(duì)各函數(shù)存儲(chǔ)至少10000個(gè)數(shù)值。
插值法可以利用插值,來(lái)縮減要在查尋表中存儲(chǔ)的值的數(shù)量。為便于下面的討論,下面更詳細(xì)地考察插值。為簡(jiǎn)化闡述而使用底數(shù)e。然而,應(yīng)當(dāng)理解,同樣可用其它底數(shù)。
為了利用受限數(shù)量個(gè)由x0表示的表列值來(lái)計(jì)算函數(shù)Fa(x)=loge(1+e-x),函數(shù)F(x)關(guān)于表列值點(diǎn)x0的Taylor/McClaurin展開(kāi)式給出F(x)=F(X0)+(x-x0)F′(x0)+0.5(x-x0)2F″(x0)…,(6)其中,′表示一階導(dǎo)數(shù),″表示二階導(dǎo)數(shù)等?;谠撜归_(kāi)式,可以利用Taylor/McClaurin展開(kāi)式的益處把loge(c)=loge(a+b)計(jì)算為loge(a)+Fa(x),其中,x=loge(a)-loge(b),并且其中,在表中提供了針對(duì)x0的值。
為了針對(duì)32位底數(shù)e的情況使用簡(jiǎn)單線性插值,對(duì)于第24個(gè)二進(jìn)制位置來(lái)說(shuō),例如,小于2-25,必須忽略涉及二階導(dǎo)數(shù)F″的二階項(xiàng)。對(duì)Fa(x)=loge(1+e-x)求導(dǎo)得出Fa'(x)=-e-x1+e-x---(7)]]>Fa'(x)=e-x(1+e-x)2]]>當(dāng)x=0時(shí),F(xiàn)a″(x)的峰值在0.25處。因而,當(dāng)(x-x0)<2-11時(shí),二階項(xiàng)小于2-25。為了滿足該需求,最高有效位按下列格式(5.11)尋址表列值點(diǎn)x0,即xxxxx.xxxxxxxxxxx以便使余數(shù)dx=x-x0具有下面的形式O.00000000000xxxxxxxxxxxxx,由此小于2-11。這樣,dx是13位量,而x0是16位量。
線性插值項(xiàng)Fa′(x0)的精度也一定是2-25階的。岡為Fa′(x0)乘以小于2-11的dx,所以Fa′(x0)的精度一定是2-14??梢栽卺槍?duì)Fa(x0)的表中提供LSB的附加結(jié)合項(xiàng)(extra couple),以幫助減小舍入誤差,這表明需要5字節(jié)(40位)寬的查尋表以存儲(chǔ)針對(duì)每個(gè)x0值的F和F′。
因此,表列值包括216=65536個(gè)26位的Fa值和相同數(shù)目的對(duì)應(yīng)的14位Fa′值。另外,需要14×13位乘法器以形成dx·Fa′。這種乘法器固有地執(zhí)行13位移位運(yùn)算和加法運(yùn)算,由此包括大約13個(gè)邏輯延遲。利用布斯算法可以在一定程度上降低乘法器的復(fù)雜性和延遲,然而,可能使用常規(guī)乘法器作為基準(zhǔn)(benchmark)。
圖3例示了實(shí)現(xiàn)上述線性插值的常規(guī)ALU的示范框圖。圖3的ALU利用減法器10、加法器20、Fa/Fa′查尋表30、乘法器40以及減法器50來(lái)估算值C=loge(A+B)。當(dāng)在該示例中使用時(shí),A=loge(a),而B=loge(b)。因?yàn)榭赡苄枰槍?duì)減法進(jìn)行后向插值以避免如下所述的奇點(diǎn),所以圖3例示了從XM起的插值,XM是比x的最高有效16位部分多一位的x0的值。針對(duì)Fa的查尋表30包含F(xiàn)a在XM+l處的值,因此,所包含的Fa′的值可以是區(qū)間中值處的值,即,在XM+0.5處計(jì)算的Fa′的值。乘法器40將14位Fa′(XM)值乘以x的最低有效13位的13位2的補(bǔ)碼 而且,乘法器40被設(shè)置成,使得結(jié)果是Fa′(XM)和 的27位乘積。
27位乘積的LSB可以作為針對(duì)減法器50的借位輸入,并且從26位Fa′(XM)值減去剩余的26位,以生成針對(duì)26位的插值,接著在輸出加法器20中將該插值與A和B中的較大者相加,根據(jù)進(jìn)位“1”把結(jié)果C上舍入為對(duì)數(shù)幅值的31位。
因此,基于線性插值的實(shí)用32位對(duì)數(shù)加法器包括大約65536×40=2.62兆位的查尋表30和13×14位乘法器40。這些組件消耗了很大的硅面積,并且就邏輯延遲而言沒(méi)有速度優(yōu)勢(shì)。然而,為了利用插值法解決減法或復(fù)數(shù)算術(shù)運(yùn)算,針對(duì)字長(zhǎng)的基本調(diào)整和乘法器配置是必需的。
例如,為了利用插值實(shí)現(xiàn)減法,根據(jù)減法函數(shù)公式確定函數(shù)值,減法函數(shù)公式表示為Fs(x)=loge(1-e-x)(8)Fs(x)的Taylor/McClaurin展開(kāi)式包括一階導(dǎo)數(shù)FS'(x)=e-x1-e-x---(9)]]>當(dāng)x趨于0時(shí),其趨于無(wú)窮大。針對(duì)從該奇點(diǎn)起的距離運(yùn)算,可以根據(jù)下面的公式(10),從比x=loge(A)-loge(B)(當(dāng)A>B時(shí))的實(shí)際值大一個(gè)LSB的表列值起對(duì)函數(shù)進(jìn)行后向插值Fs(x)=Fs(x0)-(x0-x)Fs′(x0) (10)這是針對(duì)圖3中的對(duì)數(shù)加法例示的實(shí)現(xiàn)。接著,當(dāng)x的至少最高有效位是零時(shí),x0是值較大的一個(gè)LSB,正好避免了奇點(diǎn)。
利用與針對(duì)加法相同的16/13位分割,x0的最小值是2-11,那么Fs′的大小約為2048個(gè)值。然而,F(xiàn)s′的值比其對(duì)數(shù)加法相對(duì)運(yùn)算數(shù)(counterpart)長(zhǎng)12位,由此,這把用于形成dx·Fs′的乘法器的大小增大為13×26位的裝置。
根據(jù)上述,因此在ALU實(shí)現(xiàn)插值中限制了實(shí)數(shù)加法和實(shí)數(shù)減法以及針對(duì)復(fù)數(shù)運(yùn)算之間的協(xié)同作用(synergy)。因而,查尋表和乘法都需要執(zhí)行插值,這使得為在硬件邏輯中實(shí)現(xiàn)不希望地復(fù)雜了傳統(tǒng)插值法。
迭代對(duì)數(shù)運(yùn)算作為針對(duì)上述插值處理和為縮減存儲(chǔ)需求的另選例,可以使用迭代方案。迭代方案使用兩個(gè)相對(duì)較小的查尋表,來(lái)基于表列函數(shù)利用迭代處理計(jì)算對(duì)數(shù)輸出。為了例示迭代方案,提供了一個(gè)十進(jìn)制示例,以例示怎樣可以根據(jù)log10(3)=0.4771和log10(2)=0.3010來(lái)推導(dǎo)出log10(5)=log10(3+2)和log10(1)=log10(3-2)。
對(duì)數(shù)加法函數(shù)表(在此也稱為Fa表)存儲(chǔ)針對(duì)底數(shù)10并且針對(duì)按0.1的步長(zhǎng)在0.0到4.9之間變化的x值基于公式(4)的50個(gè)值。另一個(gè)表(在此稱為修正表或G表),存儲(chǔ)針對(duì)按0.001的步長(zhǎng)在0.001到0.099之間變化的y值基于以下公式的99個(gè)值G(y)=-log10(1-10-y) (11)下面例示了利用這兩個(gè)查尋表的針對(duì)上述log(5)=log(3+2)示例的雙表迭代處理。雖然下面是根據(jù)底數(shù)10進(jìn)行描述的,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,可以使用任何底數(shù)。針對(duì)使用不同于底數(shù)10的底數(shù)的實(shí)施例,應(yīng)當(dāng)理解,雖然公式(4)和(11)分別針對(duì)底數(shù)10的計(jì)算定義了函數(shù)表和修正表,但是,公式(12)通用地定義了針對(duì)任何底數(shù)q的函數(shù)表和修正表。
Fa(x)=logq(1+q-x)G(y)=-logq(1-q-y) (12)對(duì)于對(duì)數(shù)加法處理來(lái)說(shuō),首先,把自變量x=A-B=log10(3)-log10(2)=0.1761上舍入至最近的十分位0.2。根據(jù)具有50個(gè)值的Fa表,我們找到Fa(0.2)=0.2124。將0.2124與0.4771相加,結(jié)果針對(duì)log10(2+3)的第一近似為0.6895。將x從0.1761舍入至0.2造成的誤差值為0.0239。該誤差決不會(huì)大于0.099,因此,使用99個(gè)值的修正查尋表G(y)。對(duì)于修正值y=0.0239,上舍入至0.024,G表提供修正值1.2695。合并G(y)=1.2695與根據(jù)第一查尋表的值Fa(0.2)=(0.2124)和x的原始值(0.1761),生成針對(duì)Fa的新自變量為x′=1.658。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在這種情況下限定x的撇號(hào)不表示求導(dǎo)。
當(dāng)上舍入至最近的十分位時(shí),x′=1.7。Fa(1.7)=0.0086,其在與針對(duì)log10(2+3)的第一近似0.6895相加時(shí),給出第二近似0.6981。在把1.658上舍入至1.7時(shí)的誤差是0.042。在G表中查尋y=0.042,給出值1.035,其在與先前的Fa值0.0086和與x′=1.658相加時(shí)導(dǎo)致一新的x值,x″=2.7016。在把x″上舍入至2.8之后,使用Fa表生成Fa(2.8)=0.0007。將0.0007與第二近似(0.6981)相加,給出第三且最終的近似0.6988,其被認(rèn)為足夠接近實(shí)際值0.6990,達(dá)到在利用僅具有50個(gè)值的Fa查尋表和僅具有100個(gè)值的G查尋表時(shí)所期望的精度。如果需要,可以進(jìn)行進(jìn)一步的迭代,以稍微提高精度。然而,對(duì)于加法來(lái)說(shuō),通常不需要多于三次的迭代。另選的是,如果把最大迭代次數(shù)預(yù)設(shè)為3,則可以把Fa的針對(duì)最后一次迭代的自變量下舍入至最近十分位為2.7,而非總是上舍入。Fa(2.7)=0.0009,其在與針對(duì)log10(3+2)的第二近似數(shù)0.6981相加時(shí),給出期望的結(jié)果log10(5)=log10(3+2)=0.6990。
雙表迭代處理包括為避免乘法而接受3步處理和查尋表大小的100倍縮減。在硬件實(shí)現(xiàn)中,針對(duì)三次迭代所需的邏輯延遲的總次數(shù)事實(shí)上可以小于通過(guò)乘法器的重復(fù)加/移位結(jié)構(gòu)的邏輯延遲的次數(shù)。在任何情況下,上述查尋表大小的縮減在硅面積和/或精度具有頭等重要性時(shí)都是有用的。
可以類似地計(jì)算log10(3-2)的值。起始近似數(shù)是較大數(shù)的對(duì)數(shù),即0.4771。用于減法的Fs表按0.1的步長(zhǎng)存儲(chǔ)值Fs(x)=log10(1-10-x)(針對(duì)底數(shù)10) (13)Fs(x)=logq(1-q-x)(針對(duì)一般底數(shù)q)G表保持原樣。將log10(3)與log10(2)之差0.1761上舍入至最近的十分位0.2。在減法函數(shù)表中查尋0.2生成Fs(0.2)=-0.4329。將-0.4329與起始近似數(shù)0.4771相加,生成針對(duì)log10(1)的第一近似數(shù)0.0442。
和針對(duì)加法一樣,將0.1761上舍入至0.2的誤差是0.0239。以0.024尋址按前述限定的G表,返回值1.2695。將1.2695與先前的Fs自變量x=0.1761和先前的Fs表查尋值-0.4329相加,生成新的Fs表自變量x′=1.0127。將x′上舍入至最近的十分位1.1,并再次利用Fs表生成Fs(1.1)=-0.0359。將-0.0359與第一近似數(shù)(0.0442)相加,給出針對(duì)log10(1)的第二近似數(shù)0.0083。將1.0127上舍入至1.1的誤差是0.0873。利用值0.087尋址G表給出G(0.087)=0.7410。當(dāng)與先前未舍入的Fs表自變量1.0127和Fs表查尋值-0.0359相加時(shí),生成新的Fs表自變量x″=1.7178。將x″上舍入至1.8,導(dǎo)致Fs(1.8)=-0.0069,將其與第二近似數(shù)0.0083相加,獲得針對(duì)log10(1)的第三近似數(shù)0.0014。將1.7178上舍入至1.8的誤差是0.0822。以0.082尋址G表,返回值0.7643。將其與先前的Fs表自變量1.7178和先前的Fs表查尋值-0.0069相加,生成新的Fs表自變量x=2.4752。將2.4752上舍入至2.5,生成函數(shù)值Fs(2.5)=-0.0014。將-0.0014與第三近似數(shù)(0.0014)相加,給出正如期望的log10(1)=log10(3-2)=0。因?yàn)镕s的自變量針對(duì)每次迭代都增大,導(dǎo)致修正越來(lái)越小,所以該算法收斂。
上述針對(duì)減法的處理除使用了F表的減法形式(version)之外,其余與針對(duì)加法的處理相同。然而,加法和減法都使用同一G表。而且,減法與加法相比需要多一次迭代,以提供良好的精度;這是因?yàn)?,由于在減法的情況下與Fs值相加時(shí)的增量是負(fù)的,所以Fs的自變量對(duì)于每次迭代,尤其是對(duì)于第一次迭代,略微減緩地上升。
高精度對(duì)數(shù)加法通常,針對(duì)更一般化的底數(shù)為q的對(duì)數(shù)要解決的對(duì)數(shù)加法問(wèn)題可以通過(guò)下列步驟給出假設(shè)A=logq(a)而B=logq(b),其中,a和b是正數(shù),而q是底數(shù)。
目標(biāo)尋找C=logq(c),其中,c=a+b。
因而,C=logq(a+b)=logq(qA+qB),設(shè)A為A和B中的較大者。
那么,C=logq(qA(1+q-(A-B)))=A+logq(1+q-(A-B))=A+logq(1+q-r),其中,r=A-B,并且是正的。
因而,問(wèn)題被簡(jiǎn)化成計(jì)算具有單一變量r的函數(shù)logq(1+q-r)。
如果r具有受限字長(zhǎng),則可以通過(guò)函數(shù)查尋表獲得函數(shù)值。例如,對(duì)于16位的r值,函數(shù)查尋表必須存儲(chǔ)65536個(gè)字。而且,如果在底數(shù)q=e=2.718的情況下,r>9,則函數(shù)的值不同于零而小于2-13,這暗示僅需要考慮r的最大為15的4位整數(shù)部分以及12位小數(shù)部分。那么,對(duì)于r>9來(lái)說(shuō),函數(shù)值對(duì)于小數(shù)點(diǎn)之后的12個(gè)二進(jìn)制位置都是0,因此,僅對(duì)于高達(dá)9的r值需要查尋表,從而給出9×4096=36864個(gè)存儲(chǔ)器字。
因?yàn)樵趓=0時(shí)函數(shù)的最大值是loge(2)=0.69,所以僅需要存儲(chǔ)12位小數(shù)部分,由此,存儲(chǔ)器需求僅為36864個(gè)12位字,而不是65536個(gè)16位字。在底數(shù)2的情況下,對(duì)于r>13來(lái)說(shuō),函數(shù)對(duì)于12個(gè)二進(jìn)制位置都是0,由此,也僅需要考慮r的4位整數(shù)部分。如果把一位用于符號(hào),則對(duì)數(shù)幅值部分僅15位長(zhǎng),例如4.11格式或5.10格式,相應(yīng)地可以調(diào)整上述演算。
然而,為了獲得比16位高得多的精度,例如利用32位的字長(zhǎng),用于函數(shù)的直接查尋表太大了。例如,為了給出與IEEE 32位浮點(diǎn)標(biāo)準(zhǔn)相當(dāng)?shù)木群蛣?dòng)態(tài)范圍,針對(duì)底數(shù)e的情況,A和B應(yīng)當(dāng)各具有7位整數(shù)部分、24位小數(shù)部分以及一個(gè)符號(hào)位?,F(xiàn)在,r的值在函數(shù)對(duì)于24位精度是0之前必須大于25loge(2)=17.32,這可由r的5位正整數(shù)部分表示。因而,必須把格式5.24的潛在的29位r值視為函數(shù)Fa的自變量。針對(duì)0到18之間的值,r的直接查尋需要18×224或302兆個(gè)24位字的查尋表大小。實(shí)質(zhì)上,所有針對(duì)對(duì)數(shù)運(yùn)算的研究都關(guān)注于縮減這些表大小,最終目的是為了使64位字長(zhǎng)實(shí)用。在此描述的幾種技術(shù)使該技術(shù)朝這一目標(biāo)推進(jìn)了。
為了根據(jù)單個(gè)大表(這對(duì)于使用r的所有位作為地址的對(duì)數(shù)加法函數(shù)Fa的直接查尋是需要的)縮減查尋表的大小,本發(fā)明的一種實(shí)現(xiàn)包括將r分別分成最高有效(MS)部分rM和最低有效(LS)部分rL。如下所述,所述MS部分和LS部分分別尋址兩個(gè)小很多的表F和G。MS部分表示輸入值的“上舍入”形式,而LS部分表示上舍入形式與原始全自變量值之差。
設(shè)rM是r(r<32)的最高有效14位,而rL是r的最低有效15位,如公式(14)所示。
rM=xxxxx.xxxxxxxxxrL=00000.000000000xxxxxxxxxxxxxxx (14)為簡(jiǎn)化起見(jiàn),可以把rM和rL的長(zhǎng)度簡(jiǎn)寫表示為(5.9)和(15)。通過(guò)對(duì)本方法的顯見(jiàn)的修改,同樣可以使用將r分成最高有效位部分和最低有效位部分的其它劃分,而對(duì)于下面進(jìn)一步討論的優(yōu)選特定劃分的一些考慮,涉及針對(duì)其它字長(zhǎng)(例如,16位)或針對(duì)復(fù)數(shù)運(yùn)算再用相同的F表和G表的能力。
設(shè)rM+是rM增大rL的最大可能值后的值(即,00000.000000000111111111111111)。應(yīng)當(dāng)認(rèn)識(shí)到,這只是其最低有效15位設(shè)置成1的原始r值。在一些實(shí)現(xiàn)中,rM可以另選地增大0.000000001,即,rM+=xxxxx.xxxxxxxxx+00000.000000001(15)設(shè)rL的補(bǔ)碼值表示為rL-=rM+-r---(16)]]>那么,取決于使用了針對(duì)rM的上述兩個(gè)另選增大中的哪一個(gè),這是rL的補(bǔ)碼或2補(bǔ)碼,即,rL-=00000.000000000111111111111111-00000.000000000xxxxxxxxxxxxxxx(rL的補(bǔ)碼),或者rL-=00000.000000001000000000000000-00000.000000000xxxxxxxxxxxxxxx(rL的2補(bǔ)碼)。那么,下面針對(duì)底數(shù)e的結(jié)果為loge(1+e-r)=loge(1+e-rM+-e-rM++e-r)]]>=loge((1+e-rM+)(1+(e-r-e-rM+)(1+e-rM+)))]]>=loge(1+e-rM+)+loge(1+e-r')---(17)]]>其中,r'=r+loge(1+e-rM+)=loge(1-e-rL-).]]>類似展開(kāi)loge(1+e-r′),則有l(wèi)oge(1+e-r')=loge(1+e-rM'+)+loge(1+e-r')---(18)]]>其中,r'=r'+loge(1+e-rM'+)-loge(1-e-rL'-).]]>針對(duì)結(jié)論的迭代表明,希望的答案包括下列函數(shù)等的和loge(1+e-rM+)]]>loge(1+e-rM'+)]]>loge(1+e-rM'+)---(19)]]>這些函數(shù)僅取決于它們相應(yīng)的r自變量的最高有效14位,而最高有效14位可以從僅有16384個(gè)字的查尋表獲得。
對(duì)于公式(17)到(19),用來(lái)限定表示的r值的撇號(hào)不表示導(dǎo)數(shù)。代替的是,通過(guò)向前一值累加剛從對(duì)數(shù)加法函數(shù)查尋表(Fa)獲得的值,并且根據(jù)r的最低有效15位添加一通過(guò)修正查尋表(即,G表,因?yàn)閞L-是15位值,所以其具有32768個(gè)字)給出的值(即,值loge(1-e-rL'+),]]>來(lái)導(dǎo)出r值的序列r、r′、r″等。
盡管根據(jù)rM+和rL-計(jì)算存儲(chǔ)的值,但是可以分別根據(jù)rM和rL直接尋址函數(shù)查尋表和修正查尋表。分別調(diào)用這些查尋表函數(shù)Fa和G,并且注意修正值總是高負(fù)的,在G表中可以存儲(chǔ)正修正值。將該正修正值與先前的r自變量相加,代替存儲(chǔ)負(fù)值并減去它。而且,可以從存儲(chǔ)的值減去G表的最小修正值或至少其整數(shù)部分,以縮減存儲(chǔ)的位數(shù),并且只要從表中拉出(pulled)一值就添加到后面。對(duì)于底數(shù)2來(lái)說(shuō),值8適合于最小修正值,并且甚至在一些實(shí)現(xiàn)中不需要添加到后面。那么,迭代是1、將輸出累加器值C初始化為A和B中的較大者。
2、如果A是較大者,則將r初始化成A-B,或者如果B是較大者,則將r初始化成B-A。
3、將r分成rM和rL。
4、查尋分別按rM和rL尋址的Fa(rM+)和G(rL-)。
5、累加Fa與C,并累加Fa+G與r。
6、如果r<停止閾值(STOP_THRESHOLD)(下面進(jìn)一步討論),則從步驟3起重復(fù)。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,可以使用多個(gè)邏輯門,以利用邏輯b6.OR.(b5.AND.(b4.OR.b3.OR.b2))(32位集、或具有8、4或2位集中的一個(gè)的16位集)來(lái)檢測(cè)大于18的r-值,其中,位索引指示小數(shù)點(diǎn)左邊的位的位置。函數(shù)G(rL-)=loge(1-e-rL-)]]>的值總是約大于6.24,因此,迭代總是在3個(gè)循環(huán)或更少循環(huán)后終止。對(duì)于底數(shù)2來(lái)說(shuō),修正值按比例增大,從而同樣對(duì)于底數(shù)2來(lái)說(shuō),在至多3個(gè)循環(huán)后r總是超過(guò)25。一般來(lái)說(shuō),3個(gè)循環(huán)典型地滿足任何底數(shù)。
高精度雙表對(duì)數(shù)減法如果與A和B相關(guān)聯(lián)的符號(hào)S表示a和b具有相同符號(hào),則可以使用前述對(duì)數(shù)加法算法,在此稱為“對(duì)數(shù)加法(logadd)”。否則,需要對(duì)數(shù)減法算法,在此稱為“對(duì)數(shù)減法(logsub)”。下表顯示了何時(shí)使用相應(yīng)的算法

當(dāng)使用對(duì)數(shù)加法算法時(shí),結(jié)果的符號(hào)總是與較大的對(duì)數(shù)幅值相關(guān)聯(lián)的符號(hào)。
如果首先顛倒與第二自變量相關(guān)聯(lián)的符號(hào),則對(duì)于對(duì)數(shù)減法同樣如此。當(dāng)希望是減法時(shí),可以在向?qū)?shù)運(yùn)算單元的輸入施加第二自變量時(shí),進(jìn)行第二自變量的符號(hào)的顛倒?!皩?duì)數(shù)減法”算法如下導(dǎo)出假設(shè)給出A=log(|a|),而B=log(|b|)。希望找到C=log(c),其中,c=|a|-|b|。設(shè)A是A和B中的較大者。為清楚起見(jiàn),去掉絕對(duì)值符號(hào)(||),并且假定現(xiàn)在a和b都是正的,從而有C=loge(a-b)=loge(eA-eB) (20)如同對(duì)數(shù)加法的情況一樣,僅出于例示的目的,在該示例中使用了底數(shù)e,因此這不構(gòu)成限制。
因?yàn)榧俣ˋ大于B,所以C=loge(eA(1-e-(A-B)))=A+loge(1-e-(A-B)) (21)=A+loge(1-e-r)其中,r=A-B,并且是正的。因而,問(wèn)題簡(jiǎn)化成計(jì)算具有單一變量r的函數(shù)loge(1-e-r)。設(shè)rM、rL、rM+以及rL-如前述定義。那么,針對(duì)底數(shù)e
loge(1-e-r)=loge(1-e-rM++e-rM+-e-r)]]>=loge((1-e-rM+)(1-(e-r-e-rM+)(1-e-rM+)))]]>=loge(1-e-rM+)+loge(1-e-r')---(22)]]>其中,r'=r+loge(1-e-rM+)-loge(1-e-rL-).]]>展開(kāi)loge(1-e-r′)同樣導(dǎo)致loge(1-e-r')=loge(1-e-rM'+)+loge(1-e-r')---(23)]]>其中,r'=r'+loge(1-e-rM'+)-loge(1-e-rL'-),]]>等。針對(duì)結(jié)論的迭代表明loge(1-e-rM+)]]>loge(1-e-rM'+)]]>loge(1-e-rM'+)---(24)]]>等等,它們僅取決于相對(duì)應(yīng)的全字長(zhǎng)r值的最高有效14位,這可以由僅具有16384個(gè)字的查尋表給出。
如同對(duì)數(shù)加法的情況一樣,盡管存儲(chǔ)值是根據(jù)rM+以及rL-計(jì)算的,但是,針對(duì)對(duì)數(shù)減法的查尋表可以被構(gòu)成為按rM和rL直接尋址。而且,如同對(duì)數(shù)加法的情況一樣,為修飾指示的r值而使用的撇號(hào)不表示導(dǎo)數(shù)。
如前所述分別調(diào)用這些查尋表Fa和G(G是用于對(duì)數(shù)加法算法的同一查尋表)并存儲(chǔ)G的正值,將生成對(duì)數(shù)減法運(yùn)算所需的Fs表和G表。因?yàn)?-e-r總是小于1,所以Fs總是負(fù)的,由此,可以存儲(chǔ)并且減去而非加上正幅值。另一方法存儲(chǔ)其負(fù)符號(hào)位被除去的負(fù)值,當(dāng)進(jìn)行減法時(shí),通過(guò)附加最高有效位“1”,在查尋表外替換該負(fù)符號(hào)位。在加法與減法之間優(yōu)選選擇導(dǎo)致邏輯的簡(jiǎn)化和查尋表值的最大協(xié)同的那一個(gè),如下面進(jìn)一步所述。在任何情況下,下列步驟概述了“對(duì)數(shù)減法”處理1、初始化輸出累加器值,使C=A和B中的較大者。
2、如果A是較大者,則將r初始化成A-B,或者如果B是較大者,則將r初始化成B-A。
3、將r分成rM和rL。
4、分別按rM和rL尋址,查尋Fs(rM+)和G(rL-)。
5、累加Fs與C,并累加Fs+G與r。
6、如果r<停止閾值(下面討論),則從步驟3起重復(fù)。
對(duì)于對(duì)數(shù)加法算法和對(duì)數(shù)減法算法來(lái)說(shuō),選擇停止閾值,以使來(lái)自又一次迭代的任何貢獻(xiàn)都小于LSB的一半。這對(duì)于小數(shù)點(diǎn)之后具有24個(gè)二進(jìn)制位置的底數(shù)e出現(xiàn)在17.32(可以使用18)處,或者對(duì)于小數(shù)點(diǎn)之后具有23個(gè)二進(jìn)制位置的底數(shù)2出現(xiàn)在24處。原則上,可以設(shè)立小于底數(shù)2的底數(shù),其給出停止閾值31,這樣就將使用在可根據(jù)r的選定MSB尋址的整個(gè)地址空間上定義的F函數(shù)。另選的是,可以設(shè)立大于底數(shù)e的底數(shù),其給出具有相同性質(zhì)的停止閾值15。然而,底數(shù)2的實(shí)際優(yōu)點(diǎn)看來(lái)大于利用針對(duì)F表的全地址空間的任何優(yōu)點(diǎn)。一般來(lái)說(shuō),對(duì)于底數(shù)2,停止閾值僅比小數(shù)點(diǎn)之后的對(duì)數(shù)表示的二進(jìn)制位置的數(shù)目大1或2。
如上面給出的十進(jìn)制示例所示,如果是下舍入為尋址F表而使用的最終自變量例如rM+,而不是上舍入rM,則改進(jìn)了有限次迭代之后的精度。如果雙表迭代處理總是執(zhí)行固定次數(shù)的迭代,或者如果該處理以其它方式識(shí)別最終迭代,則可以在最終迭代時(shí)下舍入F的自變量。例如可以通過(guò)r在停止閾值的特定范圍(對(duì)于底數(shù)e來(lái)說(shuō)是~6,或者對(duì)于底數(shù)2來(lái)說(shuō)是~8)內(nèi)(表示限制下一迭代超過(guò)停止閾值),來(lái)識(shí)別最終迭代。當(dāng)使用該方法時(shí),如果對(duì)于最終迭代rL的最左位為零,則可以將針對(duì)F表的地址減1。在要描述的流水線實(shí)現(xiàn)中,僅針對(duì)下舍入自變量來(lái)計(jì)算最終F表內(nèi)容。
對(duì)數(shù)減法算法與對(duì)數(shù)加法算法之間的唯一差別是使用了查尋表Fs而非Fa。因?yàn)閮烧叨季哂?6384字的大小,所以它們可以合并成用F(rM,操作碼)表示的具有用于選擇+或-形式的附加地址位的單個(gè)函數(shù)F表,其中附加自變量“操作碼”是具有值0或1以表示是應(yīng)用對(duì)數(shù)加法算法還是應(yīng)用對(duì)數(shù)減法算法的附加地址位。另選的是,因?yàn)橥鈬壿?即,輸入累加器和輸出累加器以及加法器/減法器)與相應(yīng)的查尋表相比較小,
所以對(duì)于復(fù)制外圍邏輯以形成獨(dú)立的加法器和減法器來(lái)說(shuō),花費(fèi)較小。下面考慮的又一種可能性是使用函數(shù)Fa與-Fs之間的相似性。
指數(shù)近似如上所述,rM+可以包括按rL(0.00000000011111111111111)的最大可能值增大的rM,或者可以包括按0.000000001增大的rM。選擇rM的增量是0.0000000001111111…1而非0.000000001的優(yōu)點(diǎn)是,在迭代算法期間可以按rL的補(bǔ)碼尋址G表,或者直接在rM=0的情況下可以按rL(未經(jīng)補(bǔ)碼運(yùn)算)尋址G表以獲得F的值,因而,使得單次迭代就可以滿足減去兩個(gè)幾乎相等的值的其它困難情況。與形成2的補(bǔ)碼相比,使補(bǔ)碼值和非補(bǔ)碼值可用更簡(jiǎn)單且更快,因?yàn)椴恍枰獋魉瓦M(jìn)位。
對(duì)于對(duì)數(shù)加法來(lái)說(shuō),F(xiàn)a表的值可以定義如下Fa(XM)=log2(1+2-(XM+d))---(25)]]>其中,d表示遞增量,其優(yōu)選為XL的最大可能值,即,全部為1。該函數(shù)可以構(gòu)成為按XM尋址的查尋表。對(duì)于減法來(lái)說(shuō),F(xiàn)s表的值可以定義如下Fs(XM)=-log2(1-2-(XM+d))---(26)]]>對(duì)于XM的較大值來(lái)說(shuō),并且對(duì)于32位運(yùn)算和在16與24之間的自變量范圍來(lái)說(shuō),F(xiàn)a(XM)=Fs(XM),兩者都可以由下式充分近似E=2-XM1·(2-0.XM2loge(2))---(27)]]>其中,XM1是XM的整數(shù)部分(小數(shù)點(diǎn)左邊的位),而XM2是小數(shù)部分,即,小數(shù)點(diǎn)右邊的位。括號(hào)中的函數(shù)可以按小的指數(shù)查尋表存儲(chǔ)。右移位器可以實(shí)現(xiàn)整數(shù)部分,從而僅小數(shù)位需要尋址指數(shù)函數(shù),這縮小了表大小。
圖4例示了指數(shù)近似(E)與真函數(shù)值(Fa,F(xiàn)s)之間的相似性。當(dāng)自變量在16到24之間的范圍內(nèi)變化時(shí),E基本上等于Fa和Fs。而且,圖4還例示了又一近似
E2=2-2(XM+d)2loge(2)---(28)]]>如何也充分近似了指數(shù)近似與真函數(shù)值之間的差dFa=E-Fa和dFs=Fs-E。因此,對(duì)于在8到16的范圍中的XM來(lái)說(shuō),可以使用按長(zhǎng)度小于或等于8位的小修正值E2修正后的指數(shù)近似E,如從圖4可見(jiàn)。當(dāng)需要二進(jìn)制小數(shù)點(diǎn)之后具有24個(gè)位置時(shí),該結(jié)果長(zhǎng)度為17位。
因?yàn)镋曲線下的面積大約近似于實(shí)現(xiàn)指數(shù)近似所需的硅面積,所以圖4還例示了實(shí)現(xiàn)用于對(duì)數(shù)加法運(yùn)算和對(duì)數(shù)減法運(yùn)算的函數(shù)表所需的近似硅面積。利用底數(shù)為2的對(duì)數(shù)刻度作為垂直刻度,意味著高度表示二進(jìn)制值的字長(zhǎng)。水平刻度表示這種值的數(shù)值。因此,曲線下的面積表示存儲(chǔ)曲線值所需的ROM的位數(shù)。然而,指數(shù)函數(shù)E是周期性的,除了針對(duì)每個(gè)增量1的右移位之外,其值是重復(fù)的。因而,僅需要存儲(chǔ)按小數(shù)部分XM2尋址的一個(gè)周期,并將該結(jié)果按XM1給出的多個(gè)位置移位。因此,指數(shù)函數(shù)E需要非常小的表。而且,因?yàn)樾拚礵F或E2與原始的Fa和Fs函數(shù)相比,在它們的曲線下明顯具有更小的面積,所以利用指數(shù)近似E并存儲(chǔ)修正dF和E2需要更小的表大小,由此與存儲(chǔ)Fa和Fs相比,需要更小的硅面積。
公式(29)給出針對(duì)最低有效位的G函數(shù)如下G(XL)=-log2(1-2-(d-XL))---(29)]]>其中,當(dāng)d全部為1時(shí),(d-XL)等于XL的補(bǔ)碼。G(XL)的最小值取決于31位對(duì)數(shù)幅值在XM與XL之間的劃分。如果XM具有5.8的形式,則XL具有0.00000000xxxxxxxxxxxxxxx的形式并且小于2-8。當(dāng)XL=0時(shí),那么,G的最小值是8.5。對(duì)于XM具有形式(5.7)來(lái)說(shuō),G的最小值=7.5,而對(duì)于XM具有格式(5.9)來(lái)說(shuō),G的最小值=9.5。因?yàn)閄的值每個(gè)周期至少增大G的值,所以只要三個(gè)G值平均大于8,X在三個(gè)周期內(nèi)就將超過(guò)24。在下面,出于例示的目的,保持32位運(yùn)算的假定。當(dāng)G的最小值是8.5時(shí),可以從存儲(chǔ)值中減去基值(base value)8。
針對(duì)復(fù)數(shù)的對(duì)數(shù)運(yùn)算上述各種不同處理通常適用于針對(duì)實(shí)數(shù)的對(duì)數(shù)運(yùn)算。然而,無(wú)線電通信信號(hào)可以利用實(shí)數(shù)表示和復(fù)數(shù)表示。例如,針對(duì)實(shí)數(shù)和復(fù)數(shù)信號(hào)處理的典型應(yīng)用包括無(wú)線電信號(hào)處理。在無(wú)線電系統(tǒng)中,在天線處接收的信號(hào)包含無(wú)線電噪聲,并且可以由一系列復(fù)數(shù)采樣表示。通常希望的是,利用相對(duì)于噪聲最弱的可能信號(hào)來(lái)再現(xiàn)信息,以使范圍最大化。因此,從天線聚集的采樣的復(fù)數(shù)表示不需要高精度數(shù)字化,因?yàn)椴捎帽绕谕脑肼曤娖胶煤芏嗟牧炕炔惶杏谩H欢?,在處理?fù)數(shù)噪聲信號(hào)以再現(xiàn)信息并修正錯(cuò)誤之后,希望去除噪聲;此刻,所得信息可能需要更高精度的表示。例如,可以按一系列實(shí)數(shù)采樣來(lái)表示語(yǔ)音,但是因?yàn)樘幚淼脑继炀€信號(hào)提高了語(yǔ)音的信噪比的保真度,所以可能需要更高精度的數(shù)字表示。
因此,提供對(duì)于實(shí)數(shù)的高精度運(yùn)算和對(duì)于復(fù)數(shù)的較低精度運(yùn)算的信號(hào)處理器,在諸如蜂窩電話和蜂窩系統(tǒng)的無(wú)線電應(yīng)用中是受關(guān)注的。這種處理器可以包括用于程序存儲(chǔ)的存儲(chǔ)器、用于存儲(chǔ)正被處理的實(shí)數(shù)型數(shù)據(jù)和復(fù)數(shù)型數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)器、實(shí)數(shù)和復(fù)數(shù)算術(shù)/邏輯單元(ALU),以及可以包括模數(shù)轉(zhuǎn)換器和數(shù)模轉(zhuǎn)換器的輸入和輸出裝置。數(shù)據(jù)存儲(chǔ)器存儲(chǔ)ALU設(shè)計(jì)所針對(duì)的相同字長(zhǎng)的字;合乎邏輯的是,針對(duì)實(shí)數(shù)和復(fù)數(shù)使用相同的字長(zhǎng),以使它們可以存儲(chǔ)在同一存儲(chǔ)器中。然而,本發(fā)明不需要這樣。
典型的是,對(duì)于語(yǔ)音處理來(lái)說(shuō)16位字足夠了。因此,所關(guān)注的是,確定16位復(fù)數(shù)表示是否提供足夠的動(dòng)態(tài)范圍,用于表示天線接收的噪聲信號(hào)。這由歐洲L.M.愛(ài)立信公司及其分支機(jī)構(gòu)美國(guó)愛(ài)立信-通用電氣在1988-1997年期間制造并銷售的第一代數(shù)字蜂窩電話中被證明確實(shí)如此,所述第一代數(shù)字蜂窩電話使用了包括8位對(duì)數(shù)幅值和7位相位的15-16位對(duì)數(shù)極坐標(biāo)表示。這些產(chǎn)品還利用了根據(jù)組合實(shí)現(xiàn)的美國(guó)專利5048059、5148373以及5070303把無(wú)線電信號(hào)直接數(shù)字化成復(fù)數(shù)對(duì)數(shù)極坐標(biāo)形式,通過(guò)引用將所述美國(guó)專利并入于此。
至于實(shí)數(shù),對(duì)于振幅的對(duì)數(shù)來(lái)說(shuō)可以使用任何底數(shù)。如果使用底數(shù)e,則對(duì)數(shù)幅值表示以奈培為單位的瞬時(shí)信號(hào)電平。如本領(lǐng)域所知,1奈培約等于8.686分貝(dB),因此,采用格式xxxx.xxxx的8位對(duì)數(shù)幅值表示在0到15又15/16奈培(~139dB)范圍內(nèi)變化的信號(hào)電平。
量化誤差是一奈培或0.27dB的最低有效位或+/-1/32的一半,其是約3.2%的百分比誤差。理論上,該誤差均勻分布在+/-3.2%之間,并且具有峰值1/3(即,大約1%)的RMS值。由此,量化噪聲為信號(hào)電平的1/100,即,比信號(hào)電平低40dB,并且如果使用了過(guò)采樣,即,按大于信號(hào)帶寬的每秒每Hz1個(gè)采樣的奈奎斯特速率來(lái)采樣,則量化噪聲可以更小。
對(duì)數(shù)極坐標(biāo)表示的優(yōu)點(diǎn)在于,該量化精度在信號(hào)電平的整個(gè)范圍內(nèi)都保持恒定??倓?dòng)態(tài)范圍為139dB下的-40dB的量化噪聲被視為遠(yuǎn)勝任于大多數(shù)無(wú)線電信號(hào)應(yīng)用。
圖5A例示了與圖5B的笛卡兒坐標(biāo)表示相對(duì)照,怎樣利用對(duì)數(shù)極坐標(biāo)表示把復(fù)平面分割成單位區(qū)域。在對(duì)數(shù)極坐標(biāo)圖的中央的白“洞”是信號(hào)電平小于0000.0000奈培的位置,而外圓是最高信號(hào)電平1111.1111奈培。如果選擇下限0000.0000比無(wú)線電噪聲電平低10dB,則這確保將足以表示噪聲漂移,并且數(shù)值表示不會(huì)過(guò)度地劣化噪聲的統(tǒng)計(jì)特性。因而,外圓又表示比噪聲高129dB的信號(hào)電平,這甚至不可能被最強(qiáng)的信號(hào)超過(guò)。
用來(lái)表示相角的有限位數(shù)也會(huì)造成量化誤差和噪聲。來(lái)自相位量化的噪聲貢獻(xiàn)的RMS值為以弧度為單位的最小相位位值的1/12。如果使用8位來(lái)表示相位,則最小相位位具有2π/256弧度的值,由此,量化噪聲相對(duì)于信號(hào)電平是2π/(12*256)=0.002或-53.8dB。這小于-40dB的對(duì)數(shù)幅值量化噪聲。
對(duì)振幅多分配1位而對(duì)相位少分配1位的位分配,使對(duì)數(shù)幅值量化約為-46dB,而相位量化噪聲為-47.8dB。由此,當(dāng)使用16位字長(zhǎng)時(shí),暗示用于對(duì)數(shù)幅值的對(duì)數(shù)極坐標(biāo)格式是xxxx.xxxxx,而用于相位的對(duì)數(shù)極坐標(biāo)格式是0.xxxxxxx(模數(shù)2π)。
如果使用底數(shù)為2的對(duì)數(shù)來(lái)表示對(duì)數(shù)幅值,則格式為xxxx.xxxxx的量化噪聲將減小loge(2)或3.18dB到-49dB。動(dòng)態(tài)范圍從16奈培或139dB減小16×6dB=96dB,這仍是充分的。
對(duì)數(shù)極坐標(biāo)數(shù)可以存儲(chǔ)為對(duì)數(shù)幅值在前,即,{xxxx.xxxxx;0.xxxxxxx}={log(r);θ},或者存儲(chǔ)為相位在前,即,{0.xxxxxxx;xxxx.xxxxx}={θ;log(r)}。可能有用的是,把相位考慮為實(shí)數(shù)的1位“相位”或符號(hào)的擴(kuò)展,以在復(fù)數(shù)情況下表示正好兩個(gè)角度0度和180度以外的角度,由此,“相位在前”格式提供了用于描繪此的邏輯格式。在復(fù)數(shù)運(yùn)算中,在加法與減法之間可能幾乎沒(méi)有區(qū)別,因?yàn)楹喜⑾嗖?度(即,加)或180度(即,減)的數(shù)正好是在要考慮的相對(duì)相位角的整個(gè)范圍內(nèi)的兩個(gè)點(diǎn)處。
利用對(duì)數(shù)極坐標(biāo)格式,通過(guò)對(duì)數(shù)幅值部分的定點(diǎn)加法(考慮下溢或上溢)和忽略上溢(因?yàn)榻嵌缺挥?jì)算為模2π)的相位部分的定點(diǎn)加法,來(lái)獲得兩個(gè)復(fù)數(shù)的乘積。當(dāng)二進(jìn)制相位字量化級(jí)在0-2π的范圍內(nèi)均勻分隔時(shí),根據(jù)相位計(jì)算需要,依據(jù)二進(jìn)制加法的翻轉(zhuǎn)(rollover)精確地對(duì)應(yīng)于模2π運(yùn)算。同樣,通過(guò)定點(diǎn)減法獲得兩個(gè)對(duì)數(shù)極坐標(biāo)復(fù)數(shù)的商。
考慮針對(duì)16位對(duì)數(shù)實(shí)數(shù)形式(logreal)運(yùn)算和16位對(duì)數(shù)極坐標(biāo)運(yùn)算使用同一ALU??梢哉J(rèn)識(shí)到,在相加或相減中的唯一差別在于,針對(duì)對(duì)數(shù)極坐標(biāo)情況,不允許把來(lái)自對(duì)數(shù)幅值部分的加法或減法的任何進(jìn)位或借位傳送到加法器或減法器的相位部分中,如果使用對(duì)數(shù)幅值在前格式,也是如此。
為了例示可以怎樣實(shí)現(xiàn)對(duì)按對(duì)數(shù)極坐標(biāo)格式表示的復(fù)數(shù)的對(duì)數(shù)運(yùn)算,考慮如下。設(shè)公式(30)以底數(shù)為e的對(duì)數(shù)極坐標(biāo)格式Z1和Z2表示兩個(gè)笛卡兒坐標(biāo)復(fù)數(shù)z1和z2。
Z1=(R1,θ1)=loge(z1)Z2=(R2,θ2)=loge(z2) (30)為了確定Z3=loge(z3)(其中,z3=z1+z2),可以執(zhí)行與針對(duì)實(shí)數(shù)的上述過(guò)程相似的過(guò)程。首先,注意到Z3=loge(Z1+Z2)=loge(eZ1+eZ2)---(31)]]>假定Z1比Z2具有更大的對(duì)數(shù)幅值(R1),并且應(yīng)用與上述相似的邏輯,則Z3可以表示為
Z3=loge(eZ1(1+e-(Z1-Z2)))]]>=Z1+loge(1+e-(Z1-Z2))]]>=Z1+loge(1+e-Z)---(32)]]>其中,Z=Z1-Z2,具有正實(shí)數(shù)部分R1-R2,因?yàn)镽1>R2,這確保幅值e-Z<1。因而,給出Z1和Z2來(lái)計(jì)算Z3的問(wèn)題被簡(jiǎn)化成,計(jì)算具有對(duì)數(shù)極坐標(biāo)復(fù)變量Z=(R+jθ)的函數(shù)loge(1+e-Z),其中,R=R1-R2,并且θ=θ1-θ2。盡管上述示例使用底數(shù)e,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解可以使用任何底數(shù)。
當(dāng)R>6時(shí),較小的值的加法或減法不會(huì)影響第5個(gè)二進(jìn)制位置,并且結(jié)果是較大的值。因此,對(duì)于R僅需要考慮二進(jìn)制小數(shù)點(diǎn)左邊的3位。
可以根據(jù)各種手段來(lái)計(jì)算函數(shù)loge(1+e-Z)。例如,可以使用單個(gè)表、單個(gè)迭代處理。盡管適用于低精度數(shù)和高精度數(shù),但對(duì)于高精度數(shù)所需的單個(gè)查尋表的大小可能禁止變大。查尋表可以具有最優(yōu)結(jié)構(gòu)。例如,對(duì)于16位對(duì)數(shù)極坐標(biāo)運(yùn)算來(lái)說(shuō),可能有用的是,成對(duì)存儲(chǔ)其θ分量相差π的地址的值,從而給出16384×32位的ROM,或者如果利用共軛對(duì)稱性,則給出一半大小的ROM。那么,在一個(gè)周期內(nèi)可以同時(shí)進(jìn)行同一對(duì)輸入值的復(fù)數(shù)對(duì)數(shù)加法和復(fù)數(shù)對(duì)數(shù)減法。
在一個(gè)周期內(nèi)同時(shí)進(jìn)行一對(duì)值的加和減被稱為蝶式運(yùn)算(Butterflyoperation),并且典型地在蝶式電路中執(zhí)行。圖6例示了包括低精度復(fù)數(shù)型蝶式電路100的示范ALU。蝶式電路100包括幅值累加器102、相位累加器104、選擇器106、查尋表108、和合并器110,以及差合并器112。當(dāng)R1大于R2時(shí),對(duì)數(shù)幅值累加器102計(jì)算由R=R1-R2表示的對(duì)數(shù)幅值差,而相位累加器104計(jì)算由θ=θ1-θ2表示的相角差。另選的是,當(dāng)R2大于R1時(shí),對(duì)數(shù)幅值累加器102計(jì)算由R=R2-R1表示的對(duì)數(shù)幅值差,而相位累加器104計(jì)算由θ=θ2-θ1表示的相角差。幅值累加器102和相位累加器104把計(jì)算出的差輸出給查尋表108。
查尋表108包括針對(duì)所有角度的復(fù)數(shù)的對(duì)數(shù)值。對(duì)數(shù)幅值差和相位差尋址查尋表108,以提供兩個(gè)對(duì)數(shù)極坐標(biāo)值F(Z)和F(Z+π)。如果需要,通過(guò)始終利用正角自變量,而在原始角地址是負(fù)的時(shí)共軛輸出F(Z)值,可以將該表大小減半。
幅值累加器102還基于R1和R2中的較大者,控制選擇器106,以選擇Z1或Z2作為ZL。選擇器106把ZL提供給和合并器110以及差合并器112。合并器110、112把ZL與兩個(gè)查尋表輸出F(Z)和(F(Z+π)相加,以生成與兩個(gè)輸入復(fù)數(shù)相關(guān)聯(lián)的和輸出對(duì)數(shù)以及差輸出對(duì)數(shù),由此在一次運(yùn)算中執(zhí)行復(fù)數(shù)蝶式運(yùn)算。
對(duì)于執(zhí)行諸如正交頻分復(fù)用(OFDM)信號(hào)解碼的各種信號(hào)處理運(yùn)算所需的快速傅立葉變換(FFT)來(lái)說(shuō),蝶式運(yùn)算通常是有用的。對(duì)于底數(shù)為2的FFT運(yùn)算來(lái)說(shuō),通常按2π/2N的倍數(shù)修改相角,其中,2N是FFT的大小。在對(duì)數(shù)極坐標(biāo)格式中,已知為旋移(twiddle)的這些相位旋轉(zhuǎn)運(yùn)算是不重要的,而僅涉及把量(像0.0001000)的倍數(shù)添加至相位部分。因?yàn)樵诘诫娐?00中容易修改相角,所以通過(guò)把按對(duì)數(shù)極坐標(biāo)格式表示的復(fù)數(shù)施加至蝶式電路100可以執(zhí)行非常高效的蝶式和旋移運(yùn)算,使其對(duì)于FFT來(lái)說(shuō)非常有利。只要FFT是底數(shù)為2的并且N小于或等于θ的字長(zhǎng),在旋移運(yùn)算中就不會(huì)發(fā)生舍入。對(duì)于底數(shù)2以外的FFT來(lái)說(shuō),可以設(shè)計(jì)特殊的對(duì)數(shù)極坐標(biāo)格式,其中,利用與FFT的底數(shù)相同的根表示θ。通過(guò)恰當(dāng)?shù)匦薷牟閷け砜梢栽谶@種裝置中使用在此描述的算法。
圖7例示了利用多個(gè)復(fù)數(shù)型蝶式電路100(例如圖6中示出的復(fù)數(shù)型蝶式電路)實(shí)現(xiàn)示范的16點(diǎn)FFT。蝶式電路100合并成對(duì)的值,在16元素陣列中分開(kāi)的選定的8個(gè)。接著,在選定的和輸出以及差輸出的角度部分中修改它們,以實(shí)現(xiàn)已知為旋移的復(fù)數(shù)型旋轉(zhuǎn)。按例示的位模式的模2π加法修改角度。當(dāng)使用如圖所示的7位角度部分時(shí),模2π加法是簡(jiǎn)單的模128加法。為在每個(gè)機(jī)器周期完全、并行處理和計(jì)算完整的FFT,也可以利用蝶式電路100的8×4=32個(gè)副本來(lái)實(shí)現(xiàn)這種FFT。另選的是,可以利用單列共8個(gè)蝶式電路100連續(xù)地實(shí)現(xiàn)這種FFT,以依次執(zhí)行四列計(jì)算中的每一個(gè)。而且,單個(gè)蝶式電路100可以重復(fù)使用32次,以執(zhí)行FFT。這些選項(xiàng)取決于速度與大小或成本之間的希望的折衷。
當(dāng)信號(hào)可以出現(xiàn)在超過(guò)60dB動(dòng)態(tài)范圍的任何地方時(shí),通過(guò)考慮把信號(hào)表示到比方說(shuō)1%精度的問(wèn)題,可以實(shí)現(xiàn)與復(fù)數(shù)值的笛卡兒坐標(biāo)表示相比的對(duì)數(shù)極坐標(biāo)量化的優(yōu)點(diǎn)。這可以出現(xiàn)在接收器中,用于不向接收器提供有關(guān)期望信號(hào)電平的告警的突發(fā)模式發(fā)送。如果最小信號(hào)電平約為1,則把笛卡兒坐標(biāo)部分表示到1%精度需要最少約1/64(即,二進(jìn)制小數(shù)點(diǎn)右邊的6位)的步長(zhǎng)。然而,表示超過(guò)60dB范圍的信號(hào)需要表示信號(hào)比這大1000倍,這需要在二進(jìn)制小數(shù)點(diǎn)左邊附加10位。因而,實(shí)數(shù)部分和虛數(shù)部分都需要具有格式S10.6,使得總數(shù)達(dá)34位。然而,如上所述,按對(duì)數(shù)極坐標(biāo)格式,僅利用16位就可以實(shí)現(xiàn)相同的量化精度和動(dòng)態(tài)范圍。
如果與可以適應(yīng)合理大小的單一查尋表相比需要更高的精度,則前述用于實(shí)數(shù)的雙表迭代方法可能適于復(fù)數(shù)。填充在高精度實(shí)數(shù)格式的32位字長(zhǎng)內(nèi)的復(fù)數(shù)格式例如按相位在前格式例示為(0.xxxxxxxxxxxxxxx;xxxxx.xxxxxxxxxxxx)或簡(jiǎn)寫為(0.15;5.12)。選擇相位的位數(shù)比針對(duì)對(duì)數(shù)幅值的二進(jìn)制小數(shù)點(diǎn)右邊的位數(shù)多2或3位,對(duì)于相位和幅度將給出類似的量化誤差。15位相位的最低有效位具有值2π×2-15=6.28×2-15。在R=log(r)的第12個(gè)二進(jìn)制位置處的變化給出d(log(r))=dr/r=2-12=8×2-15。
因而,log(r)的最低有效位是徑向上的位移,其略大于切向上的θ(theta)的一個(gè)最低有效位的位移。利用底數(shù)2,把log(r)的最低有效位減小loge(2)=0.69到5.54×2-15,這略小于θ的最低有效位。如果重要,則利用在2與e之間的特殊底數(shù)eπ/4=2.19328,可實(shí)現(xiàn)精確相等的徑向和切向量化。然而,底數(shù)2具有實(shí)現(xiàn)優(yōu)點(diǎn),并且是優(yōu)選的。例如,利用底數(shù)2,格式5.12的對(duì)數(shù)幅值表示信號(hào)電平在32×6=192dB動(dòng)態(tài)范圍內(nèi)變化,這是16位格式的范圍的兩倍。而且,對(duì)于所有信號(hào)電平來(lái)說(shuō),量化噪聲比信號(hào)電平低80dB以上。對(duì)于在正常應(yīng)用中的無(wú)線電信號(hào)處理來(lái)說(shuō),這是足夠大的,并且對(duì)于希望確保量化效果可忽略時(shí)的仿真來(lái)說(shuō),或者對(duì)于諸如在大的多余信號(hào)與小的需要信號(hào)之間具有極大差的接口注銷(cancellation)的臨界應(yīng)用來(lái)說(shuō),可能是有用的。
當(dāng)對(duì)數(shù)相加或?qū)?shù)相減兩個(gè)對(duì)數(shù)極坐標(biāo)值時(shí),如果在它們的對(duì)數(shù)幅值中的差很大以至于log(r)或θ的最低有效位不受影響,則該結(jié)果是具有更大對(duì)數(shù)幅值的值。因此,如果R1和R2是兩個(gè)對(duì)數(shù)極坐標(biāo)值Z1和Z2的對(duì)數(shù)幅值,并且R是R1與R2之間的差,且總是正的,則當(dāng)R大于13loge(2)=9.011時(shí),函數(shù)loge(1+e-z)=loge(1+e-(R+jθ))對(duì)于12個(gè)二進(jìn)制位置都是0。
因而,在針對(duì)32位對(duì)數(shù)極坐標(biāo)格式的底數(shù)e的情況下,僅需要考慮0到9之間的對(duì)數(shù)幅值R的差的值。類似地,針對(duì)底數(shù)2的情況,僅需要考慮作為復(fù)數(shù)對(duì)數(shù)加法/減法函數(shù)的自變量的位于0到13之間的對(duì)數(shù)幅值差的值。因而,二進(jìn)制小數(shù)點(diǎn)左邊的4位足以表示R,使R具有形式4.12。
因?yàn)椋槍?duì)負(fù)θ的復(fù)數(shù)對(duì)數(shù)加法/減法函數(shù)是針對(duì)正θ的復(fù)數(shù)對(duì)數(shù)加法/減法函數(shù)的共軛,所以θ限于0到恰小于π的范圍,由此具有0.0xxxxxxxxxxxxxx的形式,具有僅14個(gè)可變位。在導(dǎo)致本發(fā)明的研究期間,通過(guò)排除針對(duì)角度差的特定值=0.10000000000…,主要解決了復(fù)數(shù)迭代的收斂問(wèn)題。該值精確等于對(duì)數(shù)幅值的實(shí)數(shù)相減,結(jié)果的角度是兩個(gè)輸入自變量角度中的一個(gè),并且是通過(guò)利用針對(duì)實(shí)數(shù)運(yùn)算的Fs函數(shù)最佳執(zhí)行的。
針對(duì)復(fù)數(shù)的迭代處理,至于實(shí)數(shù),首先包括把要合并的兩個(gè)自變量Z1和Z2的差Z=(θ,R)=Z1-Z2分成最高有效部分和最低有效部分。如上所述,Z的值實(shí)際上僅需要30個(gè)可變位。例如,設(shè)ZM是θ的14個(gè)可變位中的最高有效7位和16位R中的最高有效8位,即,按相位在前的表示法ZM=(0.0xxxxxxx;xxxx.xxxx)。
那么,ZL是R的剩余最低有效8位和θ的剩余最低有效7位,格式為ZL=(0.00000000xxxxxxx;0000.0000xxxxxxxx)。接著,定義ZM+=ZM+dz,其中,dz具有實(shí)部0.0001或0.000011111111,和虛部0或0.111111111111111,即,比2π少1個(gè)LSB。接著,定義ZL-為ZM-Z。對(duì)于dz的前一選擇來(lái)說(shuō),ZL-是ZL的可變位的2補(bǔ)碼,而對(duì)于dZ的后一選擇來(lái)說(shuō),其是這些位的補(bǔ)碼。因?yàn)榕c2補(bǔ)碼相比,更容易形成補(bǔ)碼,所以dZ的實(shí)部和虛部的后一選擇是優(yōu)選的。那么,loge(1+e-Z)=loge(1+e-ZM+-e-ZM++e-Z)]]>=loge(1+e-ZM+)+loge(1+e-Z')---(33)]]>其中Z'=Z+loge(1+e-ZM+)-loge(1+e-ZL-)---(34)]]>函數(shù)loge(1-e-ZM+)]]>僅取決于R的8個(gè)最高有效位和θ的7個(gè)最高有效位,由此,可以預(yù)計(jì)算并存儲(chǔ)在通過(guò)ZM直接尋址的32768字表中。因而,在處理期間不需要形成ZM+。
函數(shù)-loge(1-e-ZL-)]]>僅取決于R的7個(gè)LSB和θ的8個(gè)LSB,并且還可以預(yù)計(jì)算并存儲(chǔ)為32768字查尋表,用于復(fù)數(shù)運(yùn)算的G函數(shù)。當(dāng)希望的結(jié)果是具有較大對(duì)數(shù)幅值的原始自變量Z1或Z2以及具有自變量ZM、Z′M、Z″M等的F函數(shù)連續(xù)值的和時(shí),后者僅需要計(jì)算連續(xù)值Z′、Z″、Z等。研究表明,對(duì)于要達(dá)到收斂的復(fù)數(shù)對(duì)數(shù)加法和對(duì)數(shù)減法迭代來(lái)說(shuō),可能需要多達(dá)6次迭代。糟糕的情況是Z1和Z2的角度分開(kāi)近180度,并且它們的幅值幾乎相等。通過(guò)把運(yùn)算處理為實(shí)數(shù)減法,來(lái)如上所述處理精確分開(kāi)180度的角度的情況。
為了采用同一F表滿足實(shí)數(shù)運(yùn)算和復(fù)數(shù)運(yùn)算,可以設(shè)置兩個(gè)附加地址位,以選擇針對(duì)實(shí)數(shù)加法的表、針對(duì)實(shí)數(shù)減法的表,以及針對(duì)復(fù)數(shù)加法/減法的表??梢杂肍(rm,操作碼)來(lái)表示函數(shù),其中,對(duì)于復(fù)數(shù)情況來(lái)說(shuō),rM是自變量的15位中的14位,而第15位是2位操作碼的一部分。由此,分配兩位操作碼如下表所示

同樣,函數(shù)loge(1-e-ZL-)]]>僅取決于ZL的15位,因此,可以預(yù)計(jì)算并存儲(chǔ)到查尋表中,以直接按ZL-尋址。對(duì)于用于實(shí)數(shù)運(yùn)算的G表來(lái)說(shuō),其在大小和函數(shù)上平等,并且可以通過(guò)引入“操作碼”自變量(其針對(duì)實(shí)數(shù)為0,針對(duì)復(fù)數(shù)為1)在65536字查尋表中與實(shí)數(shù)G表合并,以選擇恰當(dāng)?shù)囊话?2768字。
通過(guò)把復(fù)數(shù)型輸入分成最高有效部分和最低有效部分,為利用雙表迭代處理來(lái)執(zhí)行有關(guān)實(shí)數(shù)的對(duì)數(shù)運(yùn)算而使用的相同原理也可以應(yīng)用于按對(duì)數(shù)格式表示的復(fù)數(shù)。另外,通過(guò)把復(fù)數(shù)型輸入分成最高有效部分和最低有效部分,在待決的美國(guó)專利申請(qǐng)第號(hào)(代理案卷號(hào)4015-5287)中描述的多級(jí)流水線可以應(yīng)用至按對(duì)數(shù)極坐標(biāo)格式表示的復(fù)數(shù)。該待決申請(qǐng)通過(guò)引用并入于此。在該待決申請(qǐng)的流水線中,ALU存儲(chǔ)查尋表的針對(duì)流水線的各級(jí)的選定部分。流水線的至少一級(jí)利用按對(duì)數(shù)極坐標(biāo)格式表示的級(jí)輸入來(lái)執(zhí)行查尋表的選定部分,以生成與該級(jí)相關(guān)聯(lián)的部分輸出。通過(guò)合并該部分輸出,多級(jí)流水線生成對(duì)數(shù)輸出。
當(dāng)θ=π時(shí),可以看出,運(yùn)算等同于實(shí)數(shù)減法。針對(duì)這種情況的結(jié)果僅取決于R,對(duì)此在單步(one-shot)運(yùn)算中可以使用特殊查尋表。另選的是,可以使用針對(duì)實(shí)數(shù)減法的現(xiàn)有查尋表。這可以通過(guò)利用R的14位0xxxx.xxxxxxxxx執(zhí)行實(shí)數(shù)減法算法來(lái)進(jìn)行,以尋址要成為RL的初始值的展開(kāi)有12位零的F表的FS部分和R的剩余三位。然后,在與降低的復(fù)數(shù)精度相對(duì)應(yīng)的輸出寄存器中,除了僅累加精度的希望位之外,還執(zhí)行實(shí)數(shù)迭代,并且使用與R>18相比更早的終止標(biāo)準(zhǔn)。例如,R>9可以滿足。
用于實(shí)數(shù)和復(fù)數(shù)對(duì)數(shù)運(yùn)算的共用ALU實(shí)數(shù)和復(fù)數(shù)可以用于表示在單一系統(tǒng)內(nèi)的各種信號(hào)。同樣,常規(guī)處理器可以包括多個(gè)獨(dú)立ALU,一個(gè)用于執(zhí)行復(fù)數(shù)對(duì)數(shù)算法,而另一個(gè)用于執(zhí)行實(shí)數(shù)對(duì)數(shù)算法。然而,兩個(gè)獨(dú)立ALU占用相當(dāng)大的硅空間。而且,在某些情況下,有抑制性的是這種ALU可能需要大查尋表。因此,利用如下單一ALU是有益的,所述單一ALU能夠利用合理大小的查尋表來(lái)執(zhí)行實(shí)數(shù)和復(fù)數(shù)對(duì)數(shù)算法圖8例示了用于執(zhí)行實(shí)數(shù)和復(fù)數(shù)對(duì)數(shù)算法的一示例性ALU200。ALU200包括輸入累加器210、查尋控制器220,以及輸出累加器230。一般來(lái)說(shuō),輸入累加器210計(jì)算兩個(gè)實(shí)數(shù)或復(fù)數(shù)輸入之間的差,而查尋控制器220和輸出累加器230基于所述輸入利用實(shí)數(shù)查尋表或復(fù)數(shù)查尋表,基于輸入累加器210的實(shí)數(shù)或復(fù)數(shù)輸出集中生成輸出對(duì)數(shù)。
將要加入或減去的以對(duì)數(shù)格式表示的兩個(gè)實(shí)數(shù)或復(fù)數(shù)A和B連續(xù)提交給輸入累加器210。當(dāng)選通脈沖第一次出現(xiàn)時(shí),ALU 200把第一個(gè)數(shù)A加載到輸入累加器210和輸出累加器230中。接著將第二個(gè)數(shù)B(其具有角度部分θ或針對(duì)減法而改變180度的關(guān)聯(lián)符號(hào))提交給輸入累加器210。
當(dāng)選通脈沖第二次出現(xiàn)時(shí),輸入累加器210執(zhí)行A-B。如果存在表示B的對(duì)數(shù)幅值大于A的對(duì)數(shù)幅值的下溢,則輸入累加器210存儲(chǔ)并輸出值X=B-A,并且向輸出累加器230發(fā)送借位脈沖。該借位脈沖使輸出累加器230加載B來(lái)重寫A,所述B包括其關(guān)聯(lián)的修改或未修改符號(hào)(或在復(fù)數(shù)情況下的角度)在內(nèi)。然而,如果不存在下溢,則輸入累加器存儲(chǔ)并輸出值X=A-B。由此,輸出累計(jì)器230保持A和B中的較大者,同時(shí)輸入累加器210保持|A-B|。在前述針對(duì)實(shí)數(shù)的公式中,量X等于量r,而在前述針對(duì)復(fù)數(shù)的公式中,量X等于量Z。
基于X,查尋控制器220確定兩個(gè)輸出,部分輸出L和修正輸出Y。查尋控制器220將部分輸出L連同ADD脈沖一起輸出到輸出累加器230,使得部分輸出L與輸出累加器230的現(xiàn)有內(nèi)容累加。查尋控制器230將修正輸出Y連同ADD脈沖一起輸出到輸出累加器230,使得Y與輸入累加器210的現(xiàn)有內(nèi)容累加,由此生成新的值X。重復(fù)該循環(huán),直到Y(jié)滿足或超出預(yù)定值為止。一旦Y滿足或超出預(yù)定值,就停止循環(huán),查尋控制器220生成如下READY信號(hào),該READY信號(hào)表示所希望的回答可從輸出累加器230獲得作為輸出C,接著,ALU 200的狀態(tài)返回初始狀態(tài),在初始狀態(tài),等待新的一對(duì)輸入值A(chǔ)和B。
圖9提供了針對(duì)實(shí)數(shù)或復(fù)數(shù)對(duì)數(shù)算法運(yùn)算的一個(gè)示例性查尋控制器220的附加細(xì)節(jié)。查尋控制器220包括F表222、G表224、合并器226,以及序列器228。F表222和G表224都包括用于確定復(fù)數(shù)的對(duì)數(shù)的復(fù)數(shù)查尋表和/或用于確定實(shí)數(shù)的對(duì)數(shù)的實(shí)數(shù)查尋表。雖然圖9所例示的F表222和G表224包括復(fù)數(shù)和實(shí)數(shù)查尋表兩者,但是,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,F(xiàn)表222和G表224也可僅包括復(fù)數(shù)和實(shí)數(shù)查尋表之一。
當(dāng)把第一個(gè)32位對(duì)數(shù)量A施加至累加器210和230時(shí),向序列器228施加起始脈沖。序列器228向輸入累加器210提供加載1脈沖,而向輸出累加器230提供加載2脈沖,使它們存儲(chǔ)該32位A量。當(dāng)把第二個(gè)32位對(duì)數(shù)量B施加至累加器210、230時(shí),向序列器228施加第二選通脈沖。
序列器228向輸入累加器210提供累加脈沖。如果輸入累加器210輸出“借位”脈沖,該“借位”脈沖表示B的對(duì)數(shù)幅值大于A的對(duì)數(shù)幅值,則序列器228向輸出累加器230輸出另一加載2脈沖,使其把包括數(shù)值B的符號(hào)或相位的B值存儲(chǔ)在輸出累加器230中,以重寫A。對(duì)于實(shí)數(shù)來(lái)說(shuō),具有較大對(duì)數(shù)幅值的值的符號(hào)變?yōu)榻Y(jié)果C的符號(hào)。輸入累加器210輸出對(duì)數(shù)幅值之間的差X的值,其中,如果A大于B,則X=A-B,或者如果B大于A,則X=B-A,所以,X總是正的。把X的最高有效位XM施加至F查尋表222,而把X的最低有效位XL施加至G查尋表224。
對(duì)于實(shí)數(shù)來(lái)說(shuō),將輸入累加器210的符號(hào)邏輯部分與數(shù)值A(chǔ)和B的符號(hào)進(jìn)行XOR,以確定是應(yīng)當(dāng)使用查尋表222的Fa部分(相同符號(hào)暗示加)還是應(yīng)當(dāng)使用Fs部分(不同符號(hào)暗示減)。由此,符號(hào)的XOR形成針對(duì)F表222的附加地址位。
如果在輸入累加器210中的值X沒(méi)有超出停止閾值,則不向序列器228提供停止脈沖,并且序列器隨后通過(guò)將累加脈沖發(fā)送到輸入累加器210和輸出累加器230,促使來(lái)自合并器226的值的累加F+G被輸入到累加器210中,使得輸出累加器230中累加部分輸出L,和具有輸入累加器210中的內(nèi)容的修正輸出的累加連續(xù)。
重復(fù)上述,直到輸出累加器230指示其內(nèi)容在值上滿足或超出停止閾值為,通過(guò)向序列器228提供“停止”脈沖來(lái)停止,序列器228依據(jù)該“停止”脈沖生成“就緒”脈沖(該“就緒”脈沖表示輸出累加器230中的值C是最終結(jié)果)并且本身返回起始狀態(tài)。
在圖9的裝置中,查尋表222的Fs部分存儲(chǔ)負(fù)值,該負(fù)值是在累加器210和230中適當(dāng)?shù)乩奂荧@得的,而不必分開(kāi)表示進(jìn)行的是對(duì)數(shù)加法還是對(duì)數(shù)減法。另外,為了節(jié)省存儲(chǔ)所有Fs的符號(hào)位,當(dāng)所有Fa值是正而所有Fs值是負(fù)時(shí),可以從查尋表中省略Fs的符號(hào)位,并且可使用根據(jù)符號(hào)邏輯來(lái)提供的+/-位的值。對(duì)缺省符號(hào)位的Fs的真負(fù)值進(jìn)行存儲(chǔ)與求反值和存儲(chǔ)正值不同,必須接著將其從輸出累加器230和合并器226中減去。當(dāng)考慮查尋表大小壓縮時(shí),應(yīng)當(dāng)看到,后者具有優(yōu)勢(shì)。在U.S.專利申請(qǐng)No.(代理案卷No.4015-5288)中進(jìn)一步論述了查尋表大小壓縮,通過(guò)引用將其合并于此。
可想到的在執(zhí)行期間的其它變化,包括使合并器226的輸出值Y成為負(fù)的F+G,以使其可從輸入累加器210中減去,由此,消除在加命令與減命令之間區(qū)分輸入累加器210的需要。因?yàn)樨?fù)是補(bǔ)碼加1,所以當(dāng)存儲(chǔ)全部縮減一個(gè)最低有效位的G表224值時(shí),其可利用補(bǔ)碼輸出來(lái)完成。然而,優(yōu)選的是,不這樣修改G表224的值,以便G表224可以通用于其它情況。
圖10示出了ALU 200中的復(fù)數(shù)運(yùn)算的更多細(xì)節(jié)。對(duì)于復(fù)數(shù)值來(lái)說(shuō),輸入累加器210包括兩個(gè)獨(dú)立部分,即R部210A和θ部210B。如果防止來(lái)自輸入累加器的θ部210B的進(jìn)位輸出傳送到R部210A中,則可把用于實(shí)數(shù)算法的同一輸入累加器210用于復(fù)數(shù)算法,或者在θ第一位序的情況下反之亦然。
具有重大意義的是,尋址復(fù)數(shù)F表222的位部分來(lái)自θ并且部分來(lái)自R。如果θ占用在實(shí)數(shù)情況下由R的LSB占用的位置,則對(duì)于復(fù)數(shù)運(yùn)算來(lái)說(shuō),必須改變輸入累加器與F表222之間的連接。其對(duì)于G表224來(lái)說(shuō)也是真。這是一小麻煩,其可利用一組選擇器開(kāi)關(guān)(未示出)來(lái)執(zhí)行,該選擇器開(kāi)關(guān)與實(shí)數(shù)或復(fù)數(shù)運(yùn)算無(wú)關(guān)地從輸入累加器210選擇恰當(dāng)?shù)奈?,以連接至G和F表的地址輸入。還可想到一另選解決方案輸入累加器210與F和G表之間針對(duì)實(shí)數(shù)和復(fù)數(shù)運(yùn)算的連接可以保持相同,其需要交叉R和θ的位分配。由此,在此執(zhí)行中,θ的最高有效位將與R的最低有效位交換位置,以使R和θ的最高有效位占用在實(shí)數(shù)情況下由R的最高有效位占用的位位置,而使R和θ的最低有效位占用在實(shí)數(shù)情況下由R的最低有效位占用的位位置。為了保持所連接的連接的R位使得形成R加法器226A,同樣地保持所連接的θ位以形成獨(dú)立的θ加法器226B,則與針對(duì)實(shí)數(shù)情況相比,針對(duì)復(fù)數(shù)來(lái)說(shuō),需要對(duì)三個(gè)加法器級(jí)的進(jìn)位位進(jìn)行重新路由。如果做到了這些,則避免了從實(shí)數(shù)到復(fù)數(shù)的連接交叉,又設(shè)置了輸出累加器230和加法器226。這樣還可確保F和G表的輸出位可保持連接至加法器226和累加器230中的相同目的地。
上述剛描述的另選解決方案,對(duì)于θ=π時(shí)的復(fù)數(shù)情況來(lái)說(shuō),在希望使用實(shí)數(shù)減法表Fs時(shí)缺少實(shí)用性。在該情況下,希望R的所有位都連接至F表222的地址輸入,并且所有輸出位也都連接至累加器230和加法器226的R加法器部。在這種情況下,很難避免使用重新路由開(kāi)關(guān)。如果θ=π的情況不需要迭代處理,即,在實(shí)數(shù)Fs表222中通過(guò)單一查尋進(jìn)行處理,則避免了加法器位的重新路由。
針對(duì)復(fù)數(shù)θ=π的情況,在利用實(shí)數(shù)減法表的過(guò)程中討論要處理的另一位對(duì)準(zhǔn)是,R的到二進(jìn)制小數(shù)點(diǎn)的左邊的位數(shù),與復(fù)數(shù)的實(shí)數(shù)(5位)相比少一位(4位)。另外,實(shí)數(shù)迭代使用例如按格式5.9的最高有效位尋址的F表222,而為了在不需要迭代的情況下處理針對(duì)復(fù)數(shù)的θ=π的情況,將需要利用按格式4.12的不同值R的整個(gè)16位來(lái)尋址F表222,其需要不同大小的表。
圖11示出了針對(duì)實(shí)數(shù)和復(fù)數(shù)的不同可能位分配。圖11A示出了針對(duì)實(shí)數(shù)對(duì)數(shù)值的1到32位的直接分配,其開(kāi)始于位置1中的標(biāo)記位S,后面是按格式8.23的31位對(duì)數(shù)幅值,并且示出了分隔成具有格式5.9的最高有效位XM和按格式0.14的最低有效位XL。下部示出了針對(duì)按格式5.12的對(duì)數(shù)幅值和按格式0.15的相角的位1-32的直接分配,并且將對(duì)數(shù)幅值分成按格式4.4的最高有效部分RM和最低有效8位RL,而將相位分成7位最高和7位最低有效部分,并單獨(dú)示出了與π相對(duì)應(yīng)的位。根據(jù)圖11A,實(shí)數(shù)與復(fù)數(shù)之間的未對(duì)準(zhǔn)數(shù)是顯見(jiàn)的。例如,對(duì)數(shù)幅值的二進(jìn)制小數(shù)點(diǎn)不在相同位置處,而且尋址F表222的位(針對(duì)實(shí)數(shù)的是XM而針對(duì)復(fù)數(shù)的是XM、θM)也不在相同的位置處。
圖11B示出了其中二進(jìn)制小數(shù)點(diǎn)分別對(duì)準(zhǔn)實(shí)數(shù)和復(fù)數(shù)對(duì)數(shù)幅值的位分配。其僅關(guān)注于是否針對(duì)θ=π的復(fù)數(shù)情況嘗試再使用實(shí)數(shù)Fs表222,和是否針對(duì)θ=0的復(fù)數(shù)情況嘗試再使用實(shí)數(shù)Fa表222。然而,針對(duì)實(shí)數(shù)和復(fù)數(shù)的尋址F和G表的位仍舊不同。
圖11C示出了針對(duì)實(shí)數(shù)和復(fù)數(shù)實(shí)現(xiàn)尋址F表222的相同位的位分配。針對(duì)實(shí)數(shù)算法,使15位地址在一起,連續(xù)設(shè)置符號(hào)位S和最高有效部分XM,以尋址Fa和G表,而在復(fù)數(shù)情況下,相同15位包括8位RM和7位θM。
同樣地,由RL和θL組成的15位與XL的14位向交疊,其尋址G表224ROM。在實(shí)數(shù)情況下,由于其是復(fù)數(shù)表大小的一半,因此,當(dāng)按實(shí)數(shù)尋址G表時(shí),剛好忽略位數(shù)2。圖11C還示出了最高有效和最低有效部分內(nèi)的位序是任意的,但是在保持實(shí)數(shù)和復(fù)數(shù)運(yùn)算之間不變化的重要性的前提下,可以選擇位序以使得從一個(gè)加法器級(jí)到下一個(gè)的進(jìn)位連接數(shù)最大化。
簡(jiǎn)化解決方案沒(méi)有嘗試把復(fù)數(shù)和實(shí)數(shù)F表222合并成一個(gè)大表,由此,在兩種情況下必須使用相同地址位,但是必須使用針對(duì)實(shí)數(shù)和復(fù)數(shù)從輸入累加器210選擇的不同的,連接至恰當(dāng)?shù)牡刂肺坏莫?dú)立表。另選的情況,可針對(duì)實(shí)數(shù)和復(fù)數(shù)使用多個(gè)獨(dú)立地址解碼器。另外,用于實(shí)數(shù)和復(fù)數(shù)的G表224可以是不同的表,或者至少不同的地址解碼器。除了進(jìn)一步考慮的θ=π的情況之外總大小保持大約與合并的表相同。θ=π的情況在對(duì)數(shù)幅值幾乎相等,即,R幾乎為零時(shí)才成為問(wèn)題。因此,需要作為僅針對(duì)諸如0000.xxxxxxxxxxxx的R值的特殊情況來(lái)處理,即,在該情況中,不同R的最高有效4位為零。這僅需要4096字表,為了避免位線重新路由的復(fù)雜性以便能夠使用實(shí)數(shù)Fs表222,這是值得的。給出查尋表占用硅芯片面積的最大比例,而且,相比而言,由累加器、加法器,以及其它外圍邏輯占用的芯片面積較小,可以得出這樣的結(jié)論,即,實(shí)數(shù)和復(fù)數(shù)的分開(kāi)執(zhí)行是邏輯的,所帶來(lái)的益處是,因增加的處理速度導(dǎo)致處理器可以接著同時(shí)執(zhí)行實(shí)數(shù)和復(fù)數(shù)運(yùn)算。
當(dāng)然,在不脫離本發(fā)明的實(shí)質(zhì)特征的情況下,本發(fā)明可以采用除了在此具體闡述的方法之外的其它方法來(lái)執(zhí)行。從任何角度都應(yīng)將具體實(shí)施例看作例示性而非限制性的,并且旨在將落入所附權(quán)利要求的含義和等同范圍內(nèi)的所有改變都包含于此。
權(quán)利要求
1.一種用于計(jì)算輸出對(duì)數(shù)的ALU,該ALU包括存儲(chǔ)器,該儲(chǔ)存器存儲(chǔ)第一查尋表和第二查尋表,所述第一查尋表用于確定實(shí)數(shù)的對(duì)數(shù),而所述第二查尋表用于確定復(fù)數(shù)的對(duì)數(shù);和共用處理器,該共用處理器利用針對(duì)實(shí)數(shù)型輸入運(yùn)算數(shù)的所述第一查尋表和針對(duì)復(fù)數(shù)型輸入運(yùn)算數(shù)的所述第二查尋表,基于按對(duì)數(shù)格式表示的兩個(gè)輸入運(yùn)算數(shù)生成輸出對(duì)數(shù)。
2.根據(jù)權(quán)利要求1所述的ALU,其中,所述輸出對(duì)數(shù)表示所述輸入運(yùn)算數(shù)之和的對(duì)數(shù)或所述輸入運(yùn)算數(shù)之差的對(duì)數(shù)。
3.根據(jù)權(quán)利要求1所述的ALU,其中,該ALU包括蝶式電路,所述蝶式電路被設(shè)置成,利用所述第一查尋表或所述第二查尋表同時(shí)生成所述輸入運(yùn)算數(shù)之差的對(duì)數(shù)和所述輸入運(yùn)算數(shù)之和的對(duì)數(shù)。
4.根據(jù)權(quán)利要求3所述的ALU,其中,所述蝶式電路包括第一合并器,該第一合并器用于合并選定的輸入運(yùn)算數(shù)與由所述第一查尋表或所述第二查尋表提供的差值,以生成所述輸入運(yùn)算數(shù)之差的對(duì)數(shù);和第二合并器,該第二合并器用于合并所述選定的輸入運(yùn)算數(shù)與由所述第一查尋表或所述第二查尋表提供的和值,以生成所述輸入運(yùn)算數(shù)之和的對(duì)數(shù)。
5.根據(jù)權(quán)利要求1所述的ALU,其中,所述共用處理器包括查尋控制器,該查尋控制器被設(shè)置成,基于所述第一查尋表或所述第二查尋表來(lái)計(jì)算一個(gè)或更多個(gè)部分輸出;和輸出累加器,該輸出累加器被設(shè)置成,基于所述部分輸出來(lái)生成所述輸出對(duì)數(shù)。
6.根據(jù)權(quán)利要求5所述的ALU,其中,用來(lái)生成所述輸出對(duì)數(shù)的部分輸出的數(shù)目是基于所述輸出對(duì)數(shù)的希望精度的。
7.根據(jù)權(quán)利要求5所述的ALU,其中,所述共用處理器通過(guò)所述查尋控制器執(zhí)行兩次或更多次迭代,以確定所述輸出對(duì)數(shù),其中,每次迭代生成所述部分輸出中的一個(gè)。
8.根據(jù)權(quán)利要求7所述的ALU,該ALU還包括輸入累加器,該輸入累加器被設(shè)置成,基于在前一迭代期間生成的所述部分輸出來(lái)生成針對(duì)當(dāng)前迭代的實(shí)數(shù)型輸入或復(fù)數(shù)型輸入。
9.根據(jù)權(quán)利要求7所述的ALU,其中,所述輸出累加器基于選定的輸入運(yùn)算數(shù)和在每次迭代期間生成的所述部分輸出來(lái)生成所述輸出對(duì)數(shù)。
10.根據(jù)權(quán)利要求9所述的ALU,其中,所述共用處理器還包括選擇電路,該選擇電路被設(shè)置成,選擇具有最大幅值的輸入運(yùn)算數(shù)。
11.根據(jù)權(quán)利要求5所述的ALU,其中,所述查尋控制器包括多級(jí)流水線,并且其中,所述多級(jí)流水線中的各級(jí)都生成所述部分輸出中的一個(gè)。
12.根據(jù)權(quán)利要求11所述的ALU,其中,所述流水線中的各級(jí)都存儲(chǔ)所述第一查尋表的選定部分和所述第二查尋表的選定部分。
13.根據(jù)權(quán)利要求12所述的ALU,其中,所述流水線中的至少一級(jí)利用實(shí)數(shù)級(jí)輸入來(lái)執(zhí)行所述第一查尋表的所述選定部分,或者利用復(fù)數(shù)級(jí)輸入來(lái)執(zhí)行所述第二查尋表的所述選定部分,從而生成所述部分輸出中的一個(gè)。
14.根據(jù)權(quán)利要求1所述的ALU,其中,所述復(fù)數(shù)型輸入運(yùn)算數(shù)各包括幅值部分和相位部分。
15.根據(jù)權(quán)利要求14所述的ALU,該ALU還包括輸入累加器,該輸入累加器包括幅值累加器,該幅值累加器用于基于所述復(fù)數(shù)型輸入運(yùn)算數(shù)的幅值部分來(lái)生成復(fù)數(shù)型輸入的幅值部分;和相位累加器,該相位累加器用于基于所述復(fù)數(shù)型輸入運(yùn)算數(shù)的相位部分來(lái)生成所述復(fù)數(shù)型輸入的相位部分。
16.一種用于在ALU中計(jì)算輸出對(duì)數(shù)的方法,該方法包括以下步驟第一查尋表存儲(chǔ)步驟,該第一查尋表存儲(chǔ)步驟存儲(chǔ)用于確定實(shí)數(shù)的對(duì)數(shù)的第一查尋表;第二查尋表存儲(chǔ)步驟,該第二查尋表存儲(chǔ)步驟存儲(chǔ)用于確定復(fù)數(shù)的對(duì)數(shù)的第二查尋表;以及輸出對(duì)數(shù)生成步驟,該輸出對(duì)數(shù)生成步驟利用針對(duì)實(shí)數(shù)型輸入運(yùn)算數(shù)的所述第一查尋表和針對(duì)復(fù)數(shù)型輸入運(yùn)算數(shù)的所述第二查尋表,在共用處理器中基于按對(duì)數(shù)格式表示的兩個(gè)輸入運(yùn)算數(shù)生成輸出對(duì)數(shù)。
17.根據(jù)權(quán)利要求16所述的方法,其中,所述輸出對(duì)數(shù)生成步驟包括基于所述輸入運(yùn)算數(shù)之和或所述輸入運(yùn)算數(shù)之差生成所述輸出對(duì)數(shù)的步驟。
18.根據(jù)權(quán)利要求16所述的方法,其中,所述輸出對(duì)數(shù)生成步驟包括同時(shí)生成輸出對(duì)數(shù)的步驟,該同時(shí)生成輸出對(duì)數(shù)的步驟利用所述第一查尋表或所述第二查尋表,同時(shí)生成所述輸入運(yùn)算數(shù)之差的輸出對(duì)數(shù)并生成所述輸入運(yùn)算數(shù)之和的輸出對(duì)數(shù)。
19.根據(jù)權(quán)利要求18所述的方法,其中,所述同時(shí)生成輸出對(duì)數(shù)的步驟包括以下步驟基于所述輸入運(yùn)算數(shù)之間的比較來(lái)選擇輸入運(yùn)算數(shù);合并選定的輸入運(yùn)算數(shù)與由所述第一查尋表或所述第二查尋表提供的差值,以生成所述輸入運(yùn)算數(shù)之差的輸出對(duì)數(shù);以及合并所述選定的輸入運(yùn)算數(shù)與由所述第一查尋表或所述第二查尋表提供的和值,以生成所述輸入運(yùn)算數(shù)之和的輸出對(duì)數(shù)。
20.根據(jù)權(quán)利要求16所述的方法,其中,所述輸出對(duì)數(shù)生成步驟包括以下步驟基于所述第一查尋表或所述第二查尋表來(lái)計(jì)算一個(gè)或更多個(gè)部分輸出;和基于所述部分輸出生成所述輸出對(duì)數(shù)。
21.根據(jù)權(quán)利要求20所述的方法,該方法還包括迭代執(zhí)行步驟,該迭代執(zhí)行步驟執(zhí)行兩次或更多次迭代,以確定所述輸出對(duì)數(shù),其中,每次迭代生成所述部分輸出中的一個(gè)。
22.根據(jù)權(quán)利要求21所述的方法,該方法還包括輸入生成步驟,該輸入生成步驟基于在前一迭代期間生成的部分輸出來(lái)生成針對(duì)當(dāng)前迭代的輸入。
23.根據(jù)權(quán)利要求20所述的方法,其中,所述輸出對(duì)數(shù)生成步驟包括基于在多級(jí)流水線中的各級(jí)中生成的部分輸出來(lái)生成所述輸出對(duì)數(shù)。
24.根據(jù)權(quán)利要求23所述的方法,該方法還包括選定部分存儲(chǔ)步驟,該選定部分存儲(chǔ)步驟針對(duì)所述多級(jí)流水線中的各級(jí)存儲(chǔ)所述第一查尋表的選定部分和所述第二查尋表的選定部分。
25.根據(jù)權(quán)利要求24所述的方法,該方法還包括選定部分執(zhí)行步驟,該選定部分執(zhí)行步驟在所述流水線中的至少一級(jí)中,分別基于實(shí)數(shù)級(jí)輸入或復(fù)數(shù)級(jí)輸入來(lái)執(zhí)行所述第一查尋表的所述選定部分或所述第二查尋表的所述選定部分,以生成所述部分輸出中的一個(gè)。
26.根據(jù)權(quán)利要求16所述的方法,其中,所述復(fù)數(shù)型輸入運(yùn)算數(shù)各包括幅值部分和相位部分。
27.根據(jù)權(quán)利要求26所述的方法,該方法還包括以下步驟幅值部分生成步驟,該幅值部分生成步驟基于所述復(fù)數(shù)型輸入運(yùn)算數(shù)的幅值部分來(lái)生成復(fù)數(shù)型輸入的幅值部分;和相位部分生成步驟,該相位部分生成步驟基于所述復(fù)數(shù)型輸入運(yùn)算數(shù)的相位部分來(lái)生成所述復(fù)數(shù)型輸入的相位部分。
28.一種用于計(jì)算復(fù)數(shù)的輸出對(duì)數(shù)的ALU,該ALU包括存儲(chǔ)器,該儲(chǔ)存器用于存儲(chǔ)查尋表,該查尋表用于確定復(fù)數(shù)的對(duì)數(shù)和處理器,該處理器利用存儲(chǔ)的查尋表,生成按對(duì)數(shù)極坐標(biāo)格式表示的復(fù)數(shù)型輸入運(yùn)算數(shù)的算術(shù)合并的輸出對(duì)數(shù)。
29.根據(jù)權(quán)利要求28所述的ALU,其中,所述處理器包括蝶式電路,該蝶式電路被設(shè)置成,基于所述查尋表同時(shí)計(jì)算所述復(fù)數(shù)型輸入運(yùn)算數(shù)之差的輸出對(duì)數(shù)和所述復(fù)數(shù)型輸入運(yùn)算數(shù)之和的輸出對(duì)數(shù)。
30.根據(jù)權(quán)利要求29所述的ALU,其中,所述蝶式電路包括第一合并器,該第一合并器用于合并選定的輸入運(yùn)算數(shù)與由所述查尋表提供的差值,以生成所述復(fù)數(shù)型輸入運(yùn)算數(shù)之差的輸出對(duì)數(shù);和第二合并器,該第二合并器用于合并所述選定的輸入運(yùn)算數(shù)與由所述查尋表提供的和值,以生成所述復(fù)數(shù)型輸入運(yùn)算數(shù)之和的輸出對(duì)數(shù)。
31.根據(jù)權(quán)利要求28所述的ALU,其中,所述處理器包括查尋控制器,該查尋控制器被設(shè)置成,基于所述查尋表來(lái)計(jì)算一個(gè)或更多個(gè)部分輸出;和輸出累加器,該輸出累加器被設(shè)置成,基于所述部分輸出來(lái)生成所述輸出對(duì)數(shù)。
32.根據(jù)權(quán)利要求31所述的ALU,其中,所述處理器通過(guò)所述查尋控制器執(zhí)行兩次或更多次迭代,以生成所述輸出對(duì)數(shù),其中,每次迭代生成所述部分輸出中的一個(gè)。
33.根據(jù)權(quán)利要求32所述的ALU,該ALU還包括輸入累加器,該輸入累加器被設(shè)置成,基于在前一迭代期間生成的部分輸出來(lái)生成針對(duì)當(dāng)前迭代的復(fù)數(shù)型輸入。
34.根據(jù)權(quán)利要求31所述的ALU,其中,所述查尋控制器包括多級(jí)流水線,并且其中,所述多級(jí)流水線中的各級(jí)都生成所述部分輸出中的一個(gè)。
35.根據(jù)權(quán)利要求28所述的ALU,其中,所述復(fù)數(shù)型輸入運(yùn)算數(shù)包括幅值部分和相位部分。
36.根據(jù)權(quán)利要求35所述的ALU,該ALU還包括輸入累加器,該輸入累加器包括幅值累加器,該幅值累加器用于基于所述復(fù)數(shù)型輸入運(yùn)算數(shù)的幅值部分來(lái)生成復(fù)數(shù)型輸入的幅值部分;和相位累加器,該相位累加器用于基于所述復(fù)數(shù)型輸入運(yùn)算數(shù)的相位部分來(lái)生成所述復(fù)數(shù)型輸入的相位部分。
37.根據(jù)權(quán)利要求35所述的ALU,其中,所述相位部分包括所述復(fù)數(shù)型輸入的最高有效部分,并且其中,所述幅值部分包括所述復(fù)數(shù)型輸入的最低有效部分。
38.根據(jù)權(quán)利要求37所述的ALU,其中,所述查尋表包括幅值查尋表和相位查尋表。
39.根據(jù)權(quán)利要求38所述的ALU,其中,所述復(fù)數(shù)型輸入的所述最高有效部分尋址所述相位查尋表,并且其中,所述復(fù)數(shù)型輸入的最低有效部分尋址所述幅值查尋表。
40.一種計(jì)算復(fù)數(shù)的輸出對(duì)數(shù)的方法,該方法包括以下步驟查尋表存儲(chǔ)步驟,該查尋表存儲(chǔ)步驟存儲(chǔ)用于確定按對(duì)數(shù)極坐標(biāo)格式表示的復(fù)數(shù)的對(duì)數(shù)的查尋表;和輸出對(duì)數(shù)生成步驟,該輸出對(duì)數(shù)生成步驟利用存儲(chǔ)的查尋表,基于按對(duì)數(shù)極坐標(biāo)格式表示的復(fù)數(shù)型輸入運(yùn)算數(shù)來(lái)生成輸出對(duì)數(shù)。
41.根據(jù)權(quán)利要求40所述的方法,其中,所述輸出對(duì)數(shù)生成步驟包括以下步驟基于所述查尋表,同時(shí)計(jì)算所述復(fù)數(shù)型輸入運(yùn)算數(shù)之差的輸出對(duì)數(shù)和所述復(fù)數(shù)型輸入運(yùn)算數(shù)之和的輸出對(duì)數(shù)。
42.根據(jù)權(quán)利要求40所述的方法,其中,所述輸出對(duì)數(shù)生成步驟包括以下步驟基于所述查尋表計(jì)算一個(gè)或更多個(gè)部分輸出;和基于所述部分輸出生成所述輸出對(duì)數(shù)。
43.根據(jù)權(quán)利要求42所述的方法,該方法還包括以下步驟執(zhí)行兩次或更多次迭代,以生成所述輸出對(duì)數(shù),其中,每次迭代生成所述部分輸出中的一個(gè)。
44.根據(jù)權(quán)利要求43所述的方法,其中,所述輸出對(duì)數(shù)生成步驟包括以下步驟執(zhí)行多級(jí)流水線,以生成所述輸出對(duì)數(shù),其中,所述多級(jí)流水線中的各級(jí)都生成所述部分輸出中的一個(gè)。
45.根據(jù)權(quán)利要求40所述的方法,該方法還包括以下步驟幅值部分生成步驟,該幅值部分生成步驟基于所述復(fù)數(shù)型輸入運(yùn)算數(shù)的幅值部分來(lái)生成復(fù)數(shù)型輸入的幅值部分;和相位部分生成步驟,該相位部分生成步驟基于所述復(fù)數(shù)型輸入運(yùn)算數(shù)的相位部分來(lái)生成所述復(fù)數(shù)型輸入的相位部分。
46.根據(jù)權(quán)利要求45所述的ALU,其中,所述相位部分包括所述復(fù)數(shù)型輸入的最高有效部分,并且其中,所述幅值部分包括所述復(fù)數(shù)型輸入的最低有效部分。
47.根據(jù)權(quán)利要求46所述的ALU,其中,所述查尋表包括幅值查尋表和相位查尋表。
48.根據(jù)權(quán)利要求47所述的ALU,該ALU還包括以下步驟利用所述復(fù)數(shù)型輸入的所述最高有效部分尋址所述相位查尋表,而利用所述復(fù)數(shù)型輸入的所述最低有效部分尋址所述幅值查尋表。
全文摘要
本發(fā)明涉及復(fù)數(shù)對(duì)數(shù)運(yùn)算ALU,描述了用于對(duì)按對(duì)數(shù)格式表示的實(shí)數(shù)和/或復(fù)數(shù)執(zhí)行對(duì)數(shù)運(yùn)算的方法和裝置。在一個(gè)示范實(shí)施例中,ALU對(duì)按對(duì)數(shù)極坐標(biāo)格式表示的復(fù)數(shù)執(zhí)行對(duì)數(shù)運(yùn)算。根據(jù)該實(shí)施例,ALU中的存儲(chǔ)器存儲(chǔ)用來(lái)確定復(fù)數(shù)的對(duì)數(shù)的查尋表,而ALU中的處理器利用存儲(chǔ)的查尋表,基于按對(duì)數(shù)極坐標(biāo)格式表示的復(fù)數(shù)型輸入運(yùn)算數(shù)生成輸出對(duì)數(shù)。在另一示范實(shí)施例中,ALU對(duì)按對(duì)數(shù)格式表示的實(shí)數(shù)和復(fù)數(shù)執(zhí)行對(duì)數(shù)運(yùn)算。在該實(shí)施例中,存儲(chǔ)器存儲(chǔ)兩個(gè)查尋表,一個(gè)用于確定實(shí)數(shù)的對(duì)數(shù),而另一個(gè)用于確定復(fù)數(shù)的對(duì)數(shù),而處理器分別利用實(shí)數(shù)查尋表或復(fù)數(shù)查尋表,基于按對(duì)數(shù)格式表示的實(shí)數(shù)型輸入運(yùn)算數(shù)或復(fù)數(shù)型輸入運(yùn)算數(shù),來(lái)生成輸出對(duì)數(shù)。
文檔編號(hào)G06F7/48GK1965292SQ200580018166
公開(kāi)日2007年5月16日 申請(qǐng)日期2005年6月2日 優(yōu)先權(quán)日2004年6月4日
發(fā)明者保羅·威爾金森·登特 申請(qǐng)人:Lm愛(ài)立信電話有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
台东县| 壤塘县| 新乡市| 台中县| 六枝特区| 依安县| 丹棱县| 富裕县| 荥阳市| 阿勒泰市| 瑞金市| 普格县| 清徐县| 涪陵区| 平乡县| 龙口市| 迁西县| 玉门市| 岑巩县| 电白县| 突泉县| 棋牌| 蓬莱市| 饶河县| 石泉县| 连云港市| 胶州市| 大庆市| 新乐市| 渑池县| 仙游县| 拜泉县| 和静县| 大埔区| 和平区| 米易县| 呼伦贝尔市| 鄂托克前旗| 宝山区| 清苑县| 当涂县|