專利名稱:應(yīng)用跳躍式浮點(diǎn)數(shù)運(yùn)算法的數(shù)字訊號(hào)處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種可處理多筆數(shù)字?jǐn)?shù)據(jù)的數(shù)字訊號(hào)處理器及相關(guān)方法,特別涉及一種利用一跳躍式浮點(diǎn)數(shù)運(yùn)算法(Jumping Floating Point Arithmetic),將多筆數(shù)字?jǐn)?shù)據(jù)在一定點(diǎn)數(shù)表示法及一跳躍式浮點(diǎn)數(shù)表示法之間作轉(zhuǎn)換及運(yùn)算的數(shù)字訊號(hào)處理器及相關(guān)方法。
背景技術(shù):
近十年以來(lái),隨著超大規(guī)模集成電路技術(shù)與計(jì)算器技術(shù)的快速發(fā)展,實(shí)時(shí)數(shù)字信號(hào)處埋的迫切要求,電子信息業(yè)界相繼推出了各種功能型式的數(shù)字訊號(hào)處理器(Digital Signal Processor,DSP)。這些數(shù)字訊號(hào)處理器普遍具有靈活性佳、精確度高、功能強(qiáng)大等優(yōu)點(diǎn)。數(shù)字訊號(hào)處理器的應(yīng)用領(lǐng)域很廣,然而實(shí)際上,并沒(méi)有一個(gè)處理器即能完全滿足所有的或絕大多數(shù)應(yīng)用需求,設(shè)計(jì)工程師在選擇數(shù)字訊號(hào)處理器時(shí)皆需根據(jù)性能、成本、整合度、開(kāi)發(fā)的難易程度、以及功率消耗等因素進(jìn)行綜合考慮。
概略而言,數(shù)字訊號(hào)處理器皆是用來(lái)處理數(shù)字?jǐn)?shù)據(jù),但不同的數(shù)字訊號(hào)處理器具有不同的特點(diǎn),適用于不同的應(yīng)用。一般數(shù)字訊號(hào)處理器可以分為定點(diǎn)數(shù)式(Fixed Point DSP)與浮點(diǎn)數(shù)式數(shù)字訊號(hào)處理器(Floating Point DSP),這樣的區(qū)分是依據(jù)數(shù)字訊號(hào)處理器所處理的數(shù)字?jǐn)?shù)據(jù)的型式及對(duì)應(yīng)的運(yùn)算法。定點(diǎn)數(shù)式數(shù)字訊號(hào)處理器使用定點(diǎn)數(shù)運(yùn)算法,所處理的數(shù)字?jǐn)?shù)據(jù)采用定點(diǎn)數(shù)表示法(Fixed Point Representation),「定點(diǎn)數(shù)」是指在數(shù)字?jǐn)?shù)據(jù)中的小數(shù)點(diǎn)的位置固定,而具有定點(diǎn)數(shù)表示法的數(shù)字?jǐn)?shù)據(jù)即分別視其中的小數(shù)點(diǎn)的位置,可表示為整數(shù)或-1.0到+1.0之間的小數(shù)形式。浮點(diǎn)數(shù)式數(shù)字訊號(hào)處理器則使用浮點(diǎn)數(shù)運(yùn)算法,所處理的數(shù)字?jǐn)?shù)據(jù)采用浮點(diǎn)數(shù)表示法(Floating PointRepresentation),數(shù)值表示成一尾數(shù)(Mantissa)并同一指數(shù)(Exponent)的形式尾數(shù)×2指數(shù)。浮點(diǎn)數(shù)運(yùn)算法是一種較復(fù)雜的運(yùn)算法則,利用浮點(diǎn)數(shù)表示法可以實(shí)現(xiàn)將數(shù)字?jǐn)?shù)據(jù)推展至相當(dāng)大的數(shù)據(jù)動(dòng)態(tài)范圍,因此寬廣的數(shù)值范圍與高精確度的性質(zhì),昭示了浮點(diǎn)數(shù)式數(shù)字訊號(hào)處理器所蘊(yùn)含的巨大的市場(chǎng)潛力,但在考慮成本和功率消耗等原因的情況下,定點(diǎn)數(shù)式數(shù)字訊號(hào)處理器在一般消費(fèi)性電子產(chǎn)品上的應(yīng)用,仍將保有穩(wěn)固的優(yōu)勢(shì)。
請(qǐng)參閱圖1,圖1為一已知定點(diǎn)數(shù)式數(shù)字訊號(hào)處理器10一實(shí)施例的功能方塊圖。此(定點(diǎn)數(shù)式)數(shù)字訊號(hào)處理器10可用來(lái)處理多筆具有定點(diǎn)數(shù)表示法的數(shù)字?jǐn)?shù)據(jù),亦即這些數(shù)字?jǐn)?shù)據(jù)包含了整數(shù)(Integer)及小數(shù)兩種表示型式,此外,在本實(shí)施例中,這些數(shù)字?jǐn)?shù)據(jù)依據(jù)其本身所占位數(shù)的多寡,分成n位的數(shù)字?jǐn)?shù)據(jù)以及2n位的數(shù)字?jǐn)?shù)據(jù),n為大于零的整數(shù)。數(shù)字訊號(hào)處理器10包含有一數(shù)據(jù)接收端12、一乘法電路(Multiplication Circuit)16、一乘法位移裝置(Multiplication Shifter)18、一第一位移裝置14、一第二位移裝置24、一選擇運(yùn)算模塊(Multiplexing Arithmetic Module)20、一儲(chǔ)存裝置(Storage Instrument)22、以及一數(shù)據(jù)寫(xiě)入端26。數(shù)據(jù)接收端12用來(lái)由一存儲(chǔ)器或其它外部電路接收多數(shù)筆n位的數(shù)字?jǐn)?shù)據(jù),數(shù)據(jù)接收端12并將兩筆n位的數(shù)字?jǐn)?shù)據(jù)送進(jìn)乘法電路16中,乘法電路16可將具有定點(diǎn)數(shù)表示法的二n位的數(shù)字?jǐn)?shù)據(jù)相乘,產(chǎn)生一具有定點(diǎn)數(shù)表示法的2n位的數(shù)字?jǐn)?shù)據(jù),而后電連于乘法電路16的乘法位移裝置18,依據(jù)此數(shù)字?jǐn)?shù)據(jù)為整數(shù)或小數(shù)的型式,適當(dāng)調(diào)整相乘之后2n位的數(shù)字?jǐn)?shù)據(jù)的小數(shù)點(diǎn)的位置,產(chǎn)生一2n位的第一數(shù)字?jǐn)?shù)據(jù)。同時(shí),數(shù)據(jù)接收端12將一n位的數(shù)字?jǐn)?shù)據(jù)傳送至第一位移裝置14中,第一位移裝置14將具有定點(diǎn)數(shù)表示法的此n位的數(shù)字?jǐn)?shù)據(jù),經(jīng)一基本的正負(fù)號(hào)延伸程序(Sign Extension),產(chǎn)生一具有定點(diǎn)數(shù)表示法的2n位的第二數(shù)字?jǐn)?shù)據(jù)。以將一8位的二進(jìn)制正數(shù)(n=8)(00010100)轉(zhuǎn)換為一16位的二進(jìn)制正數(shù)(n=16)為例,只要將高字節(jié)填滿零便可,亦即,將高位的八個(gè)位部份補(bǔ)上0,成為(00000000 00010100),但若以二補(bǔ)碼表示負(fù)數(shù)時(shí),就要將延伸出的八個(gè)位都填上1,例如一8位的二進(jìn)制負(fù)數(shù)(11101100)可利用將延伸的八個(gè)位都補(bǔ)上1以得到(11111111 11101100)。
選擇運(yùn)算模塊20包含一選擇裝置19及一運(yùn)算單元(Arithmetic Unit)21,選擇裝置19電連于第一位移裝置14及乘法位移裝置18,用來(lái)于2n位的第一數(shù)字?jǐn)?shù)據(jù)及第二數(shù)字?jǐn)?shù)據(jù)之間選擇其一輸出,在實(shí)際實(shí)施時(shí),選擇裝置19可使用一多任務(wù)器(Multiplexer)完成。運(yùn)算單元21電連于選擇裝置19,用來(lái)接收選擇出的(2n位的)第一數(shù)字?jǐn)?shù)據(jù)或第二數(shù)字?jǐn)?shù)據(jù),而運(yùn)算單元21包含另一輸入端,用來(lái)接收由儲(chǔ)存裝置22傳送的2n位的第三數(shù)字?jǐn)?shù)據(jù),如此一來(lái),運(yùn)算單元21可對(duì)此些2n位的數(shù)字?jǐn)?shù)據(jù)(第三數(shù)字?jǐn)?shù)據(jù)與第一或第二數(shù)字?jǐn)?shù)據(jù))執(zhí)行各種運(yùn)算的功能,接下來(lái),運(yùn)算單元21輸出處理后的一2n位的第四數(shù)字?jǐn)?shù)據(jù)至儲(chǔ)存裝置22,儲(chǔ)存裝置22的功能即用來(lái)儲(chǔ)存經(jīng)選擇運(yùn)算模塊20處理后的多筆數(shù)字?jǐn)?shù)據(jù),而在實(shí)際實(shí)施時(shí),儲(chǔ)存裝置22可以一累積器(Accumulator)完成。最后,第二位移裝置24將具有定點(diǎn)數(shù)表示法的2n位的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為仍具有定點(diǎn)數(shù)表示法的一n位的數(shù)字?jǐn)?shù)據(jù),并由數(shù)據(jù)寫(xiě)入端26將此具有定點(diǎn)數(shù)表示法的n位的數(shù)字?jǐn)?shù)據(jù)寫(xiě)入前述的存儲(chǔ)裝置或其它裝置中。
上述關(guān)于定點(diǎn)數(shù)式數(shù)字訊號(hào)處理器10的已知技術(shù)的基本概念及架構(gòu)已在許多已知專利中有相關(guān)的描述。Kiuchi等人在US Patent 5,884,092,“Systemfor maintaining fixed-point data alignment within a combination CPU and DSPsystem”中,在類似上述定點(diǎn)數(shù)式數(shù)字訊號(hào)處理器10的架構(gòu)下,特別針對(duì)整數(shù)型式的數(shù)字?jǐn)?shù)據(jù)提出一簡(jiǎn)易校正法(Correction Process),利用一指令(Instruction)提示所處理的數(shù)字?jǐn)?shù)據(jù)于位時(shí)的相關(guān)信息,可避免多余累贅的位移操作(Shift Operation)并增加運(yùn)作的速度。而關(guān)于定點(diǎn)數(shù)運(yùn)算法的已知專利也有許多,如Takano等人在US Patent 5,524,089,“Logarithm computing circuitfor fixed point numbers”中將浮點(diǎn)數(shù)表示法中尾數(shù)與指數(shù)的概念應(yīng)用于定點(diǎn)數(shù)運(yùn)算法中,并著眼于二進(jìn)制與十進(jìn)制數(shù)值表示的轉(zhuǎn)換運(yùn)作上,以期縮減相關(guān)電路的面積與復(fù)雜度。
由上述已知技術(shù)可知,定點(diǎn)數(shù)式數(shù)字訊號(hào)處理器在普遍為業(yè)界所接受并使用的同時(shí),仍存在著一些極需改善的問(wèn)題?,F(xiàn)今許多定點(diǎn)數(shù)式數(shù)字訊號(hào)處理器的主要目標(biāo)市場(chǎng)是嵌入式應(yīng)用系統(tǒng),在這項(xiàng)應(yīng)用中的存儲(chǔ)器的容量需較一般為小,而圖1的定點(diǎn)數(shù)式數(shù)字訊號(hào)處理器10在與此種容量較小的存儲(chǔ)器配合應(yīng)用的情況下,進(jìn)行相關(guān)的定點(diǎn)數(shù)運(yùn)算時(shí),就經(jīng)常會(huì)有量化誤差(Quantization Error)發(fā)生。請(qǐng)?jiān)賲㈤唸D1,圖1中兩個(gè)n位的數(shù)字?jǐn)?shù)據(jù)經(jīng)乘法電路16相乘后,乘積為2n位的數(shù)字?jǐn)?shù)據(jù),再經(jīng)一連串之處理后,若第二位移裝置24要將具有定點(diǎn)數(shù)表示法的2n位的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為n位的數(shù)字?jǐn)?shù)據(jù),以儲(chǔ)存于n位的存儲(chǔ)器中時(shí),在此2n位的數(shù)字?jǐn)?shù)據(jù)為小數(shù)型式的情形下,則必須取此2n位的數(shù)字?jǐn)?shù)據(jù)中較高的n位,而舍去較低n位,而在此番舍棄位數(shù)的過(guò)程中,容易使轉(zhuǎn)換后的n位的數(shù)字?jǐn)?shù)據(jù)與原先2n位的數(shù)字?jǐn)?shù)據(jù)之間產(chǎn)生誤差。例如一(二進(jìn)制法表示法的)48位在十六進(jìn)制表示法下為0x004444ffffff,若利用舍去較低的24位以轉(zhuǎn)換為24位的數(shù)字?jǐn)?shù)據(jù)后,成為0x004444,再經(jīng)已知定點(diǎn)數(shù)運(yùn)算法還原后的數(shù)值0x004444000000明顯與原數(shù)值存有巨大的差異,即造成上述的量化誤差。這種量化誤差可能會(huì)造成在數(shù)字信號(hào)大小上的不連續(xù)、變形、與其它不良的效應(yīng),成為已知定點(diǎn)數(shù)式數(shù)字訊號(hào)處理器10在效能上的限制。若欲利用增加數(shù)字訊號(hào)處理器的位數(shù)、或改用浮點(diǎn)數(shù)式數(shù)字訊號(hào)處理器以期改善量化誤差,隨之而來(lái)的是硬件成本的大幅增加。此外,利用修改定點(diǎn)數(shù)式數(shù)字訊號(hào)處理器的程序代碼以降低量化誤差的方法,會(huì)增加程序復(fù)雜度并消耗較多數(shù)字訊號(hào)處理器的運(yùn)算效能。
發(fā)明內(nèi)容
因此本發(fā)明的主要目的是提供一種利用一跳躍式浮點(diǎn)數(shù)運(yùn)算法的數(shù)字訊號(hào)處理器,并提供一種新型的跳躍式浮點(diǎn)數(shù)表示法以處理及運(yùn)算多筆數(shù)字?jǐn)?shù)據(jù),以解決上述問(wèn)題。
在本發(fā)明中,我們以已知的定點(diǎn)數(shù)表示法為基礎(chǔ),并參考浮點(diǎn)數(shù)表示法的部分基本概念后,提出一種一新型的跳躍式浮點(diǎn)數(shù)表示法(Jumping FloatingPoint representation,JFP),并在數(shù)字訊號(hào)處理器的架構(gòu)中引入跳躍式浮點(diǎn)數(shù)表示法的概念,設(shè)置相對(duì)應(yīng)的硬設(shè)備,使一高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為一低位數(shù)數(shù)字?jǐn)?shù)據(jù)時(shí),可以用較少重復(fù)位的方式完成轉(zhuǎn)換并儲(chǔ)存至一存儲(chǔ)器中,而在之后將低位數(shù)數(shù)字?jǐn)?shù)據(jù)讀取回原先的高位數(shù)數(shù)字?jǐn)?shù)據(jù)時(shí),又可較精準(zhǔn)并有效率地完成還原的效果,如此一來(lái)便可在不耗費(fèi)過(guò)多額外資源的情況下,降低量化誤差。
本發(fā)明的目的為提供一種數(shù)字訊號(hào)處理器(Digital Signal Processor),用來(lái)處理多筆數(shù)字?jǐn)?shù)據(jù),該多筆數(shù)字?jǐn)?shù)據(jù)分別具有多個(gè)數(shù)值表示法,該多個(gè)數(shù)值表示法至少包含有一定點(diǎn)數(shù)表示法(Fixed Point Representation)以及一跳躍式浮點(diǎn)數(shù)表示法(Jumping Floating Point representation),該數(shù)字訊號(hào)處理器包含有一乘法電路(Multiplication Circuit),用來(lái)將至少二低位數(shù)數(shù)字?jǐn)?shù)據(jù)相乘產(chǎn)生一高位數(shù)數(shù)字?jǐn)?shù)據(jù);一萃取位移裝置(Extracting/Shifting Device),電連于該乘法電路,用來(lái)將具有該跳躍式浮點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù);多個(gè)表示法轉(zhuǎn)換電路(RepresentationConverter),每一表示法轉(zhuǎn)換電路利用一跳躍式浮點(diǎn)數(shù)運(yùn)算法(Jumping FloatingPoint Arithmetic),將一數(shù)字?jǐn)?shù)據(jù)于該定點(diǎn)數(shù)表示法及該跳躍式浮點(diǎn)數(shù)表示法之間作轉(zhuǎn)換;以及一運(yùn)算單元(Arithmetic Unit),用來(lái)運(yùn)算該多筆數(shù)字?jǐn)?shù)據(jù)。
本發(fā)明的另一目的為提供一種用于一數(shù)字訊號(hào)處理器中的方法,用來(lái)將具有一定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有一跳躍式浮點(diǎn)數(shù)表示法的一低位數(shù)數(shù)字?jǐn)?shù)據(jù)。該方法包含有(a)依據(jù)該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小,將具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)放大位移(Magnifying Shift)N位,其中N為大于或等于零的整數(shù),且N的值隨著該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小而變動(dòng);(b)在進(jìn)行步驟(a)后,舍去該高位數(shù)數(shù)字?jǐn)?shù)據(jù)中一預(yù)定數(shù)目的位數(shù);以及(c)在進(jìn)行步驟(b)后,設(shè)置一尾端識(shí)別碼(Tail Mark),以產(chǎn)生具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù),其中該尾端識(shí)別碼對(duì)應(yīng)于N的值。
本發(fā)明的另一目的為提供一種用來(lái)處理多筆數(shù)字?jǐn)?shù)據(jù)的數(shù)字訊號(hào)處理器,該多筆數(shù)字?jǐn)?shù)據(jù)分別具有多個(gè)數(shù)值表示法,該多個(gè)數(shù)值表示法至少包含有一定點(diǎn)數(shù)表示法以及一跳躍式浮點(diǎn)數(shù)表示法,該數(shù)字訊號(hào)處理器包含有一數(shù)據(jù)接收端,用來(lái)接收多數(shù)筆低位數(shù)數(shù)字?jǐn)?shù)據(jù);一乘法電路,電連于該數(shù)據(jù)接收端,用來(lái)將具有該定點(diǎn)數(shù)表示法的二低位數(shù)數(shù)字?jǐn)?shù)據(jù)相乘,產(chǎn)生一具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù),或者將具有該跳躍式浮點(diǎn)數(shù)表示法的二低位數(shù)數(shù)字?jǐn)?shù)據(jù)相乘,產(chǎn)生一具有該跳躍式浮點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù);一萃取位移裝置,電連于該乘法電路,用來(lái)將具有該跳躍式浮點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù);一第一表示法轉(zhuǎn)換電路(Representation Converter),電連于該數(shù)據(jù)接收端,用來(lái)將具有該跳躍式浮點(diǎn)數(shù)表示法的一低位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù),或者將具有該定點(diǎn)數(shù)表示法的一低位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù);一選擇運(yùn)算模塊(Multiplexing Arithmetic Module),電連于該第一表示法轉(zhuǎn)換電路以及萃取位移裝置,用來(lái)執(zhí)行選擇及運(yùn)算的功能;一儲(chǔ)存裝置,電連于該選擇運(yùn)算模塊,用來(lái)儲(chǔ)存經(jīng)該選擇運(yùn)算模塊處理后的多筆數(shù)字?jǐn)?shù)據(jù);一第二表示法轉(zhuǎn)換電路,電連于該儲(chǔ)存裝置,用來(lái)將具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該跳躍式浮點(diǎn)數(shù)表示法的一低位數(shù)數(shù)字?jǐn)?shù)據(jù);以及一數(shù)據(jù)寫(xiě)入端,用來(lái)將具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù)寫(xiě)入一存儲(chǔ)裝置(Memory Device)。
圖1為已知一定點(diǎn)數(shù)式數(shù)字訊號(hào)處理器的一實(shí)施例的功能方塊圖;圖2為本發(fā)明一數(shù)字訊號(hào)處理器的一實(shí)施例的功能方塊圖;圖3為具有本發(fā)明跳躍式浮點(diǎn)數(shù)表示法的一數(shù)字?jǐn)?shù)據(jù)的示意圖;圖4為圖3跳躍式浮點(diǎn)數(shù)表示法一詳細(xì)實(shí)施例的示意圖;圖5為圖3跳躍式浮點(diǎn)數(shù)表示法的另一詳細(xì)實(shí)施例的示意圖;圖6為本發(fā)明一方法實(shí)施例的流程圖;圖7為圖6的一詳細(xì)方法實(shí)施例的流程圖;圖8為本發(fā)明另一方法實(shí)施例的流程圖;圖9為圖2數(shù)字訊號(hào)處理器中部分原件的一實(shí)施例的功能方塊圖;圖10為圖2數(shù)字訊號(hào)處理器的一詳細(xì)實(shí)施例的功能方塊圖;和圖11為圖2數(shù)字訊號(hào)處理器的另一詳細(xì)實(shí)施例的功能方塊圖。
附圖符號(hào)說(shuō)明10、30、50、70數(shù)字訊號(hào)處理器 12、52、72 數(shù)據(jù)接收端14第一位移裝置16、36、56、76 乘法電路18乘法位移裝置19、69、89 選擇裝置20、60、80選擇運(yùn)算模塊21、31、61、81 運(yùn)算單元22、62、82儲(chǔ)存裝置24 第二位移裝置26、66、86數(shù)據(jù)寫(xiě)入端 33 第一表示法轉(zhuǎn)換電路34表示法轉(zhuǎn)換電路 35 第二表示法轉(zhuǎn)換電路37、57、77萃取裝置38、58、78 萃取位移裝置39、59、79位移裝置53 第三表示法轉(zhuǎn)換電路55第四表示法轉(zhuǎn)換 73 第五表示法轉(zhuǎn)換電路電路75第六表示法轉(zhuǎn)換電路具體實(shí)施方式
本發(fā)明的技術(shù)特征基于一跳躍式浮點(diǎn)數(shù)運(yùn)算法(Jumping Floating PointArithmetic),能將一數(shù)字?jǐn)?shù)據(jù)在已知的定點(diǎn)數(shù)表示法與本發(fā)明的一跳躍式浮點(diǎn)數(shù)表示法(Jumping Floating Point representation,JFP)之間作轉(zhuǎn)換,降低數(shù)值轉(zhuǎn)換時(shí)可能發(fā)生的量化誤差。而具備本發(fā)明技術(shù)特征的數(shù)字訊號(hào)處理器(Digital Signal Processor,DSP),則因此能同時(shí)處理及運(yùn)算具有定點(diǎn)數(shù)表示法與跳躍式浮點(diǎn)數(shù)表示法的數(shù)字?jǐn)?shù)據(jù)。請(qǐng)參閱圖2,圖2為本發(fā)明一數(shù)字訊號(hào)處理器30的一實(shí)施例的功能方塊圖。如前所述,本發(fā)明的數(shù)字訊號(hào)處理器30能處理具有定點(diǎn)數(shù)表示法與跳躍式浮點(diǎn)數(shù)表示法的數(shù)字?jǐn)?shù)據(jù),而在本實(shí)施例中,數(shù)字?jǐn)?shù)據(jù)依據(jù)位數(shù)的多寡又可分為高位數(shù)數(shù)字?jǐn)?shù)據(jù)(可對(duì)應(yīng)至圖1中2n位的數(shù)字?jǐn)?shù)據(jù))以及低位數(shù)數(shù)字?jǐn)?shù)據(jù)(可對(duì)應(yīng)至圖1中n位的數(shù)字?jǐn)?shù)據(jù)),而在實(shí)際實(shí)施時(shí),數(shù)字?jǐn)?shù)據(jù)所具有的位數(shù)并不限定,不僅上述高位數(shù)數(shù)字?jǐn)?shù)據(jù)及低位數(shù)數(shù)字?jǐn)?shù)據(jù)兩種。數(shù)字訊號(hào)處理器30包含有一乘法電路(MultiplicationCircuit)36、一萃取位移裝置(Extracting/Shifting Device)38、表示法轉(zhuǎn)換電路(Representation Converter)34、一運(yùn)算單元(Arithmetic Unit)31。乘法電路36可用來(lái)將二低位數(shù)數(shù)字?jǐn)?shù)據(jù)相乘產(chǎn)生一高位數(shù)數(shù)字?jǐn)?shù)據(jù),而萃取位移裝置38電連于乘法電路36,用來(lái)將具有跳躍式浮點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù)。表示法轉(zhuǎn)換電路34包含一第一表示法轉(zhuǎn)換電路33及一第二表示法轉(zhuǎn)換電路35,第一及第二表示法轉(zhuǎn)換電路33、35皆可應(yīng)用本發(fā)明的跳躍式浮點(diǎn)數(shù)運(yùn)算法,分別將其所接收的數(shù)字?jǐn)?shù)據(jù)在定點(diǎn)數(shù)表示法及跳躍式浮點(diǎn)數(shù)表示法之間作轉(zhuǎn)換。運(yùn)算單元31與萃取位移裝置38、第一表示法轉(zhuǎn)換電路33、及第二表示法轉(zhuǎn)換電路35相互連接,可用來(lái)運(yùn)算傳送至其中的數(shù)字?jǐn)?shù)據(jù),且由運(yùn)算單元31所處理的數(shù)字?jǐn)?shù)據(jù)并不限定為不定點(diǎn)數(shù)表示法及跳躍式浮點(diǎn)數(shù)表示法。
請(qǐng)注意,表示法轉(zhuǎn)換電路34的數(shù)量并不限制(可不只包含第一及第二表示法轉(zhuǎn)換電路33、35),亦可將每一個(gè)表示法轉(zhuǎn)換電路34的功能分別設(shè)計(jì)為「將具有定點(diǎn)數(shù)表示法的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有跳躍式浮點(diǎn)數(shù)表示法的數(shù)字?jǐn)?shù)據(jù)」或者「將具有跳躍式浮點(diǎn)數(shù)表示法的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有定點(diǎn)數(shù)表示法的數(shù)字?jǐn)?shù)據(jù)」,如此一來(lái),即可將具有特定轉(zhuǎn)換功能的表示法轉(zhuǎn)換電路34,視實(shí)際情形安裝設(shè)置于本發(fā)明數(shù)字訊號(hào)處理器30中任何有此轉(zhuǎn)換需要之處,接收并輸出具有跳躍式浮點(diǎn)數(shù)表示法或定點(diǎn)數(shù)表示法的數(shù)字?jǐn)?shù)據(jù)。這也同時(shí)昭示了,在上述本實(shí)施例的數(shù)字訊號(hào)處理器30中,第一及第二表示法轉(zhuǎn)換電路33、35與其它組件間的連接組合方式并不固定,無(wú)需如圖2中限定與運(yùn)算單元31相連,可隨數(shù)字?jǐn)?shù)據(jù)的運(yùn)算流程與其它硬件組件作彈性的相互連接。舉例而言,若使用者欲將經(jīng)運(yùn)算單元31處理并輸出后的一具有該定點(diǎn)數(shù)表示法的高位數(shù)數(shù)字?jǐn)?shù)據(jù),轉(zhuǎn)換為一低位數(shù)數(shù)字?jǐn)?shù)據(jù)以寫(xiě)入一外接存儲(chǔ)器中,則可把第二表示法轉(zhuǎn)換電路35設(shè)計(jì)為具備「將此具有該定點(diǎn)數(shù)表示法的高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有本發(fā)明跳躍式浮點(diǎn)數(shù)表示法的低位數(shù)數(shù)字?jǐn)?shù)據(jù)」的功能,并由于本發(fā)明的跳躍式浮點(diǎn)數(shù)運(yùn)算法具有低量化誤差的技術(shù)特征,可使得寫(xiě)入外接存儲(chǔ)器中的低位數(shù)數(shù)字?jǐn)?shù)據(jù)與原先的高位數(shù)數(shù)字?jǐn)?shù)據(jù)之間,因轉(zhuǎn)換所造成的誤差減至最低。
在大致了解本發(fā)明的數(shù)字訊號(hào)處理器基本的架構(gòu)之后,為了確實(shí)的了解本發(fā)明數(shù)字訊號(hào)處理器的運(yùn)作方式的技術(shù)特征,就必須先詳細(xì)披露本發(fā)明所提出的跳躍式浮點(diǎn)數(shù)表示法及跳躍式浮點(diǎn)數(shù)運(yùn)算法,并介紹在本發(fā)明中如何設(shè)置對(duì)應(yīng)的硬件架構(gòu)以應(yīng)用跳躍式浮點(diǎn)數(shù)運(yùn)算法,完成具有本發(fā)明完整的技術(shù)特征的數(shù)字訊號(hào)處理器。本發(fā)明的跳躍式浮點(diǎn)數(shù)表示法是介于已知定點(diǎn)數(shù)表示法以及浮點(diǎn)數(shù)表示法之間的一種新型的數(shù)值表示法,跳躍式浮點(diǎn)數(shù)表示法基于定點(diǎn)數(shù)表示法中將一數(shù)字?jǐn)?shù)據(jù)表示為-1.0到+1.0之間的小數(shù)形式,并引用浮點(diǎn)數(shù)表示法的概念,使用一至數(shù)個(gè)位來(lái)作為該數(shù)字?jǐn)?shù)據(jù)的指數(shù)(Exponent),而此指數(shù)在本發(fā)明中稱為尾端識(shí)別碼(Tail Mark)。數(shù)字?jǐn)?shù)據(jù)中其余的位則為尾數(shù)(Mantissa)。跳躍式浮點(diǎn)數(shù)表示法的基本概念為具有跳躍式浮點(diǎn)數(shù)表示法的數(shù)字?jǐn)?shù)據(jù)中的尾端識(shí)別碼所占用的位數(shù),會(huì)隨轉(zhuǎn)換前的數(shù)字?jǐn)?shù)據(jù)的原數(shù)值大小而調(diào)整,當(dāng)轉(zhuǎn)換前的原數(shù)值較大時(shí),尾端識(shí)別碼占有較少位,而當(dāng)原數(shù)值較小時(shí),過(guò)多重復(fù)的位會(huì)占據(jù)原數(shù)值的較高位數(shù)處,此時(shí)則讓尾端識(shí)別碼占有較多位,以大量取代原數(shù)字?jǐn)?shù)據(jù)中過(guò)多重復(fù)的位。請(qǐng)參閱圖3,圖3為具有本發(fā)明跳躍式浮點(diǎn)數(shù)表示法的一數(shù)字?jǐn)?shù)據(jù)DA的一實(shí)施例的示意圖。此數(shù)字?jǐn)?shù)據(jù)DA是由一標(biāo)識(shí)位(Sign bit)、占最多位數(shù)的位數(shù)據(jù)、以及一尾端識(shí)別碼所構(gòu)成。如前所述,尾端識(shí)別碼所占的位數(shù)并不固定;標(biāo)識(shí)位為此數(shù)字?jǐn)?shù)據(jù)DA中的最高位,作為正負(fù)符號(hào)的判定,當(dāng)標(biāo)識(shí)位為0時(shí),數(shù)字?jǐn)?shù)據(jù)DA為正值,當(dāng)標(biāo)識(shí)位為1時(shí),數(shù)字?jǐn)?shù)據(jù)DA則為負(fù)值,而在原數(shù)值較小而需判定原數(shù)字?jǐn)?shù)據(jù)中重復(fù)的位時(shí),即是由此數(shù)字?jǐn)?shù)據(jù)DA中次于標(biāo)識(shí)位之下一位處起(位數(shù)據(jù)的最高位),將與標(biāo)識(shí)位具有相同的位值(1或0)的位)的位視為重復(fù)的位。
請(qǐng)回頭對(duì)照?qǐng)D2,具有圖3所示表示法的數(shù)字?jǐn)?shù)據(jù)可對(duì)應(yīng)至圖2實(shí)施例所稱的一具有本發(fā)明跳躍式浮點(diǎn)數(shù)表示法的低位數(shù)數(shù)字?jǐn)?shù)據(jù),而由圖2的描述可知,圖3的數(shù)字?jǐn)?shù)據(jù)DA即是由原先一具有定點(diǎn)數(shù)表示法的高位數(shù)數(shù)字?jǐn)?shù)據(jù),利用本發(fā)明的跳躍式浮點(diǎn)數(shù)運(yùn)算法轉(zhuǎn)換后而得。請(qǐng)見(jiàn)圖4,圖4為圖3跳躍式浮點(diǎn)數(shù)表示法一詳細(xì)實(shí)施例的示意圖。圖4實(shí)施例中所顯示的數(shù)字?jǐn)?shù)據(jù)的位數(shù)設(shè)為24,且此24位的數(shù)字?jǐn)?shù)據(jù)所具有的表示法稱為一「定階數(shù)跳躍式浮點(diǎn)數(shù)表示法(Regular JFP)」,其為本發(fā)明跳躍式浮點(diǎn)數(shù)表示法中的一種,詳細(xì)情形描述如下。本實(shí)施例中此24位的數(shù)字?jǐn)?shù)據(jù)是由一具有定點(diǎn)數(shù)表示法的高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換而來(lái),此高位數(shù)數(shù)字?jǐn)?shù)據(jù)的位數(shù)可設(shè)為48位或其它較24為高的位數(shù)。舉例而言,若欲將一48位的數(shù)字?jǐn)?shù)據(jù)(具有定點(diǎn)數(shù)表示法)轉(zhuǎn)換為具有圖4所示型式的一24位的數(shù)字?jǐn)?shù)據(jù)時(shí),跳躍式浮點(diǎn)數(shù)運(yùn)算法會(huì)依據(jù)該48位的數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小,將此48位的數(shù)字?jǐn)?shù)據(jù)放大位移(Magnifying Shift)N位,N的值隨著此48位的數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小而變動(dòng),當(dāng)此48位的數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值愈大,N的值愈小,而當(dāng)絕對(duì)值愈小時(shí),N的值則愈大。上述的「定階數(shù)跳躍式浮點(diǎn)數(shù)表示法」包含多階位移模式,且固定每階位移模式所要放大位移的位數(shù),在圖4實(shí)施例中,我們固定每隔一階位移模式多位移4位,在將位移模式設(shè)為四階(第零階S0至第三階S3)的情況下,四階位移模式S0-S4分別放大位移的位數(shù)為0、4、8、12。此種將每階位移模式所欲放大位移的位數(shù)設(shè)為固定值的表示法,即為本實(shí)施例「定階數(shù)跳躍式浮點(diǎn)數(shù)表示法」的基本技術(shù)特征。
請(qǐng)繼續(xù)參閱圖4,并同時(shí)對(duì)照?qǐng)D3可知,每一階位移模式下的數(shù)字?jǐn)?shù)據(jù)都包含一標(biāo)識(shí)位,此標(biāo)識(shí)位的值與原先48位的數(shù)字?jǐn)?shù)據(jù)中的標(biāo)識(shí)位相同,而在將48位的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有「定階數(shù)跳躍式浮點(diǎn)數(shù)表示法」的24位的數(shù)字?jǐn)?shù)據(jù)時(shí),就是利用將該標(biāo)識(shí)位與該48位的數(shù)字?jǐn)?shù)據(jù)中的其它位加以比較,以選定一特定的位移模式及與其對(duì)應(yīng)的N值。為求畫(huà)面顯示清晰,我們以一個(gè)十六進(jìn)制表示的數(shù)(在十六進(jìn)制表示法下的一位代表了二進(jìn)制表示法下的四位)0x004444ffffff為例,十六進(jìn)制表示法的前三位數(shù)004代表了二進(jìn)制表示法下的12位數(shù)000000000010,最左邊的為標(biāo)識(shí)位,標(biāo)識(shí)位后有九個(gè)0,由于這九個(gè)0是與標(biāo)識(shí)位重復(fù)的位,因此對(duì)照?qǐng)D4后的結(jié)果,位移模式則可設(shè)為第二階位移模式S2,代表了在轉(zhuǎn)換的過(guò)程中放大位移了8個(gè)位。接下來(lái),為了將48位的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為24位的數(shù)字?jǐn)?shù)據(jù),必須由較低位處舍棄24位,最后再加入對(duì)應(yīng)于第二階位移模式S2的尾端識(shí)別碼。請(qǐng)注意,如圖4所示,尾端識(shí)別碼是設(shè)置于24位的數(shù)字?jǐn)?shù)據(jù)的最尾端(最低位處),其所占的位數(shù)并不固定,且每一階位移模式分別對(duì)應(yīng)至不同的尾端識(shí)別碼。本實(shí)施例將位移模式分為四階,因此最多利用3個(gè)位(位0、位1、及位2)去作為尾端識(shí)別碼,當(dāng)原(48位的數(shù)字?jǐn)?shù)據(jù)的)數(shù)值很大時(shí),跳躍式浮點(diǎn)數(shù)運(yùn)算法不對(duì)原數(shù)值作任何放大位移的操作,只在其最后一個(gè)位(位0)標(biāo)上1作為標(biāo)記,視為第零階位移模式S0;而在第一階位移模式S1,原數(shù)值較第零階位移模式S0為小,因此需將原先的48位的數(shù)字?jǐn)?shù)據(jù)放大位移4位(等同于乘以24)后,取較高位處的22個(gè)位置于24位的數(shù)字?jǐn)?shù)據(jù)的位23至位2之處,再將位1與位0標(biāo)記為“10”,完成符合「定階數(shù)跳躍式浮點(diǎn)數(shù)表示法」的數(shù)字?jǐn)?shù)據(jù),同理可類推至上述第二階位移模式S2中,而第三階位移模式S3特別將尾端識(shí)別碼設(shè)為“000”,其特殊的用意將于后面詳述。若回頭再以48位的數(shù)字?jǐn)?shù)據(jù)0x004444ffffff為例,將其放大位移8個(gè)位,并由較低位處舍棄24位,最后再加入尾端識(shí)別碼(100)后,即完成具有「定階數(shù)跳躍式浮點(diǎn)數(shù)表示法」的24位的數(shù)字?jǐn)?shù)據(jù)0x4444fc。
請(qǐng)注意,本發(fā)明中的尾端識(shí)別碼并不限形式,不限位數(shù),亦不限其設(shè)置的位置,在圖4中所示的尾端識(shí)別碼僅為本發(fā)明中的一較佳實(shí)施例。然而,本實(shí)施例的尾端識(shí)別碼的設(shè)計(jì)具有許多優(yōu)點(diǎn),首先,在由尾端識(shí)別碼判斷此數(shù)的位移模式為何階時(shí),可由該數(shù)的最后一位(位0)加以檢查,由位值為1的位置即可輕易地解讀出此數(shù)的位移模式。例如,若發(fā)現(xiàn)位0、位1的值皆為0,而位2的值為1,則可知此數(shù)字?jǐn)?shù)據(jù)為第二階位移模式S2,而其的原數(shù)在轉(zhuǎn)換的過(guò)程中被放大位移了8個(gè)位;又倘若位0至位2的值皆為0,則可知此數(shù)字?jǐn)?shù)據(jù)為第三階位移模式S3,而其原數(shù)在轉(zhuǎn)換的過(guò)程中被省略了重復(fù)的12個(gè)位。再者,無(wú)論在轉(zhuǎn)換過(guò)程中被省略的位(如本實(shí)施例中由較低位處舍棄24位)為何,由于二進(jìn)制表示法中任何數(shù)的最小值(00000…0)與最大值(11111…1)的平均值即為(10000…0),因此,此種尾端識(shí)別碼的型式(只有最高位值為1,其余為0)可代表在轉(zhuǎn)換過(guò)程中被省略的位數(shù)的平均值,可使省略后的值與原先的值的差異減至最低,如此一來(lái),在將這些具有圖4表示法的數(shù)字?jǐn)?shù)據(jù)施以部分運(yùn)算時(shí),無(wú)須將尾端識(shí)別碼特意剔除,而將尾端識(shí)別碼納入視為一整體的數(shù)值??赏葡攵?,本實(shí)施例中將對(duì)應(yīng)于第三階位移模式S3的尾端識(shí)別碼設(shè)為“000”的用意,即是避免原(48位的數(shù)字?jǐn)?shù)據(jù)的)數(shù)值為0時(shí),任何含有位值1的尾端識(shí)別碼所可能造成在運(yùn)算上的錯(cuò)誤,勿使原本為0的數(shù)值在經(jīng)轉(zhuǎn)換后產(chǎn)生不為0的數(shù)字?jǐn)?shù)據(jù)。
本發(fā)明跳躍式浮點(diǎn)數(shù)表示法還包含一「不定階數(shù)跳躍式浮點(diǎn)數(shù)表示法(Non-Regular JFP)」,略不同于圖4所示的「定階數(shù)跳躍式浮點(diǎn)數(shù)表示法」,此種表示法并不固定每階位移模式所增加的放大位移的位數(shù),請(qǐng)參閱圖5。圖5為圖3跳躍式浮點(diǎn)數(shù)表示法的另一詳細(xì)實(shí)施例的示意圖。圖5所示的「不定階數(shù)跳躍式浮點(diǎn)數(shù)表示法」的基本概念仍與圖4實(shí)施例相同,仍是將此一高位數(shù)(如48位)的數(shù)字?jǐn)?shù)據(jù)依據(jù)其絕對(duì)值放大位移N位,而當(dāng)原數(shù)的絕對(duì)值愈大,N的值愈小,當(dāng)原數(shù)的絕對(duì)值愈小時(shí),N的值則愈大,以省略過(guò)多重復(fù)的位,同時(shí)可保留更多有效的位。請(qǐng)見(jiàn)圖5,本實(shí)施例的「定階數(shù)跳躍式浮點(diǎn)數(shù)表示法」亦包四階位移模式(N0-N3),而第零階位移模式N0至第三階位移模式N3分別放大位移的位數(shù)為0、3、7、12,不再是如前一實(shí)施例的(等差級(jí)數(shù))設(shè)計(jì)0、4、8、12。除了每一階位移模式所定義的放大位移的位數(shù)并非固定增加4位之外,本實(shí)施例的技術(shù)特征大致上皆與圖4實(shí)施例相同,標(biāo)識(shí)位與尾端識(shí)別碼的功能亦可對(duì)應(yīng)至圖4實(shí)施例中的描述。
事實(shí)上,無(wú)論是圖4或圖5的實(shí)施例,位移模式的階數(shù)并不限定為四階,例如,在圖4實(shí)施例中可加入第四階位移模式、第五階位移模式、…等等。承襲「定階數(shù)跳躍式浮點(diǎn)數(shù)表示法」的基本概念,可假設(shè)每一階位移模式固定為正整數(shù)P的倍數(shù),而一共設(shè)置L階,L為一大于或等于0的整數(shù),如此一來(lái),第零階位移模式放大位移0位,第一階位移模式放大位移P位,而直到第L階位移模式則可放大位移(L-1)*P位,只要(L-1)*P的值小于原數(shù)的總位數(shù)即可。當(dāng)然,若位移模式的階數(shù)增加,意味著尾端識(shí)別碼所占的位數(shù)也必須隨之增加,才能充分取代原數(shù)字?jǐn)?shù)據(jù)中多量的重復(fù)的位。此外,無(wú)論是從圖4或圖5的實(shí)施例,皆可看出在原數(shù)值越大時(shí),占有越少位數(shù)的尾端識(shí)別碼代表著保留了越多原數(shù)值中有效的位,相對(duì)的,原數(shù)值越小時(shí),與原數(shù)值較大的情況相比之下,轉(zhuǎn)換后占有越多位數(shù)的尾端識(shí)別碼似乎保留了較少有效的位,事實(shí)上,在原數(shù)值較小時(shí),尾端識(shí)別碼能利用取代大量重復(fù)的位,更加有效地保留了更多原數(shù)值中有效的位。如此一來(lái),本發(fā)明的跳躍式浮點(diǎn)數(shù)運(yùn)算法在將一(具有定點(diǎn)數(shù)表示法)高位數(shù)數(shù)字?jǐn)?shù)據(jù)(如上述48位的數(shù)字?jǐn)?shù)據(jù))轉(zhuǎn)換為一(具有跳躍式浮點(diǎn)數(shù)表示法)低位數(shù)數(shù)字?jǐn)?shù)據(jù)(如24位的數(shù)字?jǐn)?shù)據(jù))時(shí),能保有轉(zhuǎn)換前的高位數(shù)數(shù)字?jǐn)?shù)據(jù)中更多的有效位。亦即,在轉(zhuǎn)換前后的數(shù)字?jǐn)?shù)據(jù)皆具有相同的總位數(shù)的情況下,與已知定點(diǎn)數(shù)表示法相比,跳躍式浮點(diǎn)數(shù)表示法可使相關(guān)的數(shù)字訊號(hào)處理器的運(yùn)算獲得更高的精確度,也無(wú)需浮點(diǎn)數(shù)表示法過(guò)高的復(fù)雜度。
綜上所述,本發(fā)明的跳躍式浮點(diǎn)數(shù)運(yùn)算法應(yīng)用于如圖2的一數(shù)字訊號(hào)處理器中,用來(lái)將一具有定點(diǎn)數(shù)表示法的高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為一具有跳躍式浮點(diǎn)數(shù)表示法(包含「定階數(shù)跳躍式浮點(diǎn)數(shù)表示法」及「不定階數(shù)跳躍式浮點(diǎn)數(shù)表示法」)的低位數(shù)數(shù)字?jǐn)?shù)據(jù),歸納后的方法實(shí)施例可參閱圖6,圖6為本發(fā)明一方法實(shí)施例的流程圖,包含有下列步驟步驟100開(kāi)始;步驟102設(shè)定多階位移模式,每一階位移模式分別對(duì)應(yīng)至不同的N值(N為大于或等于零的整數(shù));步驟104依據(jù)此高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小,選定一位移模式,并將具有定點(diǎn)數(shù)表示法的高位數(shù)數(shù)字?jǐn)?shù)據(jù)放大位移(對(duì)應(yīng)于該階位移模式的)N位,選擇位移模式及N值的基本原則為當(dāng)原先高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值愈大時(shí),N的值愈小,當(dāng)高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值的絕對(duì)值愈小時(shí),N的值則愈大,同時(shí),N值及位移模式的選定是由比較一標(biāo)識(shí)位與此高位數(shù)數(shù)字?jǐn)?shù)據(jù)中的其它位而得;步驟106舍去此高位數(shù)數(shù)字?jǐn)?shù)據(jù)中一預(yù)定數(shù)目的位數(shù),使得此高位數(shù)數(shù)字?jǐn)?shù)據(jù)在舍棄此預(yù)定數(shù)目的位數(shù)后,其所具有的位數(shù)與低位數(shù)數(shù)字?jǐn)?shù)據(jù)的位數(shù)相同;步驟108設(shè)置一(對(duì)應(yīng)于所選定的位移模式及N值的)尾端識(shí)別碼,以產(chǎn)生具有跳躍式浮點(diǎn)數(shù)表示法的低位數(shù)數(shù)字?jǐn)?shù)據(jù);步驟110完成跳躍式浮點(diǎn)數(shù)運(yùn)算法的轉(zhuǎn)換。
基于上述圖4的實(shí)施例,并以圖6中所述的操作流程為依據(jù),圖7顯示了本發(fā)明將一具有定點(diǎn)數(shù)表示法的48位的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為一具有跳躍式浮點(diǎn)數(shù)表示法的24位的數(shù)字?jǐn)?shù)據(jù)的一詳細(xì)方法實(shí)施例。請(qǐng)參閱圖7,圖7為圖6的一詳細(xì)方法實(shí)施例的流程圖,包含下列步驟步驟200剛開(kāi)始提供一具有定點(diǎn)數(shù)表示法的48位的數(shù)字?jǐn)?shù)據(jù);步驟202判斷該48位的數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值是否小于2-(4*1),若是,則進(jìn)行步驟204,若否,則進(jìn)行至步驟208,選定一m值為0,將位移模式設(shè)定為第零階位移模式N0;步驟204繼續(xù)判斷該48位的數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值是否小于2-(4*2),若是,則進(jìn)行步驟206,若否,則進(jìn)行至步驟208,選定m值為1,將位移模式設(shè)定為第一階位移模式N1;步驟206繼續(xù)判斷該48位的數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值是否小于2-(4*3),若是,則進(jìn)行步驟208,選定m值為3,設(shè)定為第三階位移模式N3,若否,則亦進(jìn)行至步驟208,但選定m值為2,設(shè)定為第二階位移模式N2;步驟208依據(jù)此48位的數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小,配合步驟202至步驟206的運(yùn)作,選定m值,并于m值選定之后,進(jìn)行步驟210;步驟210將該具有定點(diǎn)數(shù)表示法的48位的數(shù)字?jǐn)?shù)據(jù)放大2(4*m)倍,也就是將此48位的數(shù)字?jǐn)?shù)據(jù)放大位移(4*m)位;步驟212舍去此48位的數(shù)字?jǐn)?shù)據(jù)中最后的24位,成為一24位的數(shù)字?jǐn)?shù)據(jù);步驟214加上一對(duì)應(yīng)m值的尾端識(shí)別碼,當(dāng)m值為0,位0的值為1;當(dāng)m值為1,位0的值為0,而位1的值為1;當(dāng)m值為2,位0及位1的值為0,位2的值設(shè)為1;當(dāng)m值為3,位0、位1、及位2的值皆設(shè)為0;步驟216產(chǎn)生一具有跳躍式浮點(diǎn)數(shù)表示法的24位的數(shù)字?jǐn)?shù)據(jù),完成跳躍式浮點(diǎn)數(shù)運(yùn)算法的轉(zhuǎn)換。
本發(fā)明的跳躍式浮點(diǎn)數(shù)運(yùn)算法在將一具有定點(diǎn)數(shù)表示法的高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為一具有跳躍式浮點(diǎn)數(shù)表示法的低位數(shù)數(shù)字?jǐn)?shù)據(jù)的同時(shí),也必須要能將具有跳躍式浮點(diǎn)數(shù)表示法的此低位數(shù)數(shù)字?jǐn)?shù)據(jù)還原回具有定點(diǎn)數(shù)表示法的高位數(shù)數(shù)字?jǐn)?shù)據(jù),才算完整的實(shí)現(xiàn)本發(fā)明將一數(shù)字?jǐn)?shù)據(jù)于定點(diǎn)數(shù)表示法及跳躍式浮點(diǎn)數(shù)表示法之間作轉(zhuǎn)換的技術(shù)特征。在實(shí)際實(shí)施時(shí),只要將上述的程序以相反(Reversed)的概念加以操作,在轉(zhuǎn)換時(shí),依據(jù)尾端識(shí)別碼,將低位數(shù)數(shù)字?jǐn)?shù)據(jù)縮小位移(Minifying Shift)N位(N為大于或等于零的整數(shù)),并依據(jù)標(biāo)識(shí)位,決定N位中每一位的值,同時(shí)增補(bǔ)一預(yù)定數(shù)目的位數(shù)于低位數(shù)數(shù)字?jǐn)?shù)據(jù)中,使得此低位數(shù)數(shù)字?jǐn)?shù)據(jù)在增補(bǔ)此預(yù)定數(shù)目的位數(shù)后,其所具有的位數(shù)與所欲的高位數(shù)數(shù)字?jǐn)?shù)據(jù)的位數(shù)相同,當(dāng)然,所增補(bǔ)的位數(shù)中每一位的值,必需與標(biāo)識(shí)位的值相同,如此一來(lái),即可完成還原的目的。在此,我們繼續(xù)以上述具有「定階數(shù)跳躍式浮點(diǎn)數(shù)表示法」的24位的數(shù)字?jǐn)?shù)據(jù)0x4444fc(十六進(jìn)制表示法)為例,若欲將此24位的數(shù)字?jǐn)?shù)據(jù)還原轉(zhuǎn)換為(具有定點(diǎn)數(shù)表示法的)48位的數(shù)字?jǐn)?shù)據(jù),由于此24位的數(shù)字?jǐn)?shù)據(jù)于十六進(jìn)制表示法中的最后一位值c對(duì)應(yīng)于二進(jìn)制表示法下的4的位值(1100),也就是對(duì)應(yīng)于圖4中的位0、位1的值皆為0,而位2的值為1,等同于尾端識(shí)別碼為(100),在回頭參照?qǐng)D4實(shí)施例后,則可判定此數(shù)字?jǐn)?shù)據(jù)屬于第二階位移模式S2,亦代表當(dāng)初轉(zhuǎn)換時(shí)放大位移了8位。于是,將此數(shù)縮小位移8位(等同于除以28),并將總位數(shù)依據(jù)標(biāo)識(shí)位(其值為0)增補(bǔ)至48位,即可產(chǎn)生(具有定點(diǎn)數(shù)表示法的)48位的數(shù)字?jǐn)?shù)據(jù)0x004444fc0000。
與0x4444fc的原數(shù)0x004444ffffff相比可知,經(jīng)過(guò)本發(fā)明跳躍式浮點(diǎn)數(shù)運(yùn)算法轉(zhuǎn)換后再還原的數(shù)值0x004444fc0000仍與原數(shù)值有所差異,但若單純使用已知定點(diǎn)數(shù)運(yùn)算法,將48位的數(shù)字?jǐn)?shù)據(jù)舍棄后24位的數(shù)據(jù)(成為0x004444)再還原而得的值(0x004444000000)相比,則可看出本發(fā)明跳躍式浮點(diǎn)數(shù)運(yùn)算法能有效的減少數(shù)值轉(zhuǎn)換過(guò)程中的量化誤差,使其在硬件上實(shí)施時(shí),可以在不增添太多額外軟硬件資源的情況下,能以較小的空間儲(chǔ)存及處理數(shù)字?jǐn)?shù)據(jù)并提高精確度。
圖8描述了上述本發(fā)明將一具有跳躍式浮點(diǎn)數(shù)表示法的24位的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為一具有定點(diǎn)數(shù)表示法的48位的數(shù)字?jǐn)?shù)據(jù)的一詳細(xì)方法實(shí)施例。請(qǐng)參閱圖8,圖8為本發(fā)明另一方法實(shí)施例的流程圖,包含下列步驟步驟300剛開(kāi)始提供一具有跳躍式浮點(diǎn)數(shù)表示法的24位的數(shù)字?jǐn)?shù)據(jù),接下來(lái)同時(shí)進(jìn)行步驟302及步驟310;步驟302判斷位0的值,若位0的值為0,則進(jìn)行步驟304;若位0的值為1,則進(jìn)行至步驟308,將一m值設(shè)為0,亦即將位移模式判斷為第零階位移模式N0;步驟304繼續(xù)判斷位1的值,若位1的值為0,則進(jìn)行步驟306;若位1的值為1,則進(jìn)行至步驟308,將m值設(shè)為1,亦即將位移模式判斷為第一階位移模式N1;步驟306繼續(xù)判斷位2的值,若位2的值為0,則進(jìn)行步驟308,將m值設(shè)為3,亦即將位移模式判定為第三階位移模式N3;若位2的值為1,亦進(jìn)行至步驟308,將一m值設(shè)為2,將位移模式判斷為第二階位移模式N2;步驟308依據(jù)此24位的數(shù)字?jǐn)?shù)據(jù)中的尾端識(shí)別碼,配合步驟302至步驟306的檢查步驟,得到m值,并于m值選定之后,進(jìn)行步驟312;步驟310在此24位的數(shù)字?jǐn)?shù)據(jù)之后增補(bǔ)24位的0值,成為一48位的數(shù)字?jǐn)?shù)據(jù);
步驟312將步驟310中所得的48位的數(shù)字?jǐn)?shù)據(jù),依據(jù)經(jīng)步驟308后所得的m值,縮小2(4*m)倍,也就是將此48位的數(shù)字?jǐn)?shù)據(jù)縮小位移(4*m)位;步驟314產(chǎn)生一具有定點(diǎn)數(shù)表示法的48位的數(shù)字?jǐn)?shù)據(jù),成功將具有跳躍式浮點(diǎn)數(shù)表示法的24位數(shù)字?jǐn)?shù)據(jù)還原回具有定點(diǎn)數(shù)表示法的48位數(shù)字?jǐn)?shù)據(jù)。
將上述所有本發(fā)明的方法應(yīng)用于硬件上實(shí)施時(shí),相關(guān)的實(shí)施例可回頭參閱圖2。由于本發(fā)明圖2的數(shù)字訊號(hào)處理器30可以在其中進(jìn)行具有定點(diǎn)數(shù)表示法與跳躍式浮點(diǎn)數(shù)表示法的數(shù)值處理與運(yùn)算(運(yùn)算包含加減乘除等數(shù)學(xué)運(yùn)算),并可進(jìn)行定點(diǎn)數(shù)表示法與跳躍式浮點(diǎn)數(shù)表示法形式之間的轉(zhuǎn)換,意即,本發(fā)明的數(shù)字訊號(hào)處理器30能在極低的量化誤差下處理較低位數(shù)數(shù)字?jǐn)?shù)據(jù),因此無(wú)須增加數(shù)字訊號(hào)處理器的位數(shù)、無(wú)須改用浮點(diǎn)數(shù)式數(shù)字訊號(hào)處理器、亦無(wú)需修改數(shù)字訊號(hào)處理器30程序代碼的情況下,就能大幅增加運(yùn)算結(jié)果與正確結(jié)果之間的一致性,且能以一較小容量的外接存儲(chǔ)器儲(chǔ)存具有跳躍式浮點(diǎn)數(shù)表示法的低位數(shù)數(shù)字?jǐn)?shù)據(jù),降低硬件成本。
請(qǐng)?jiān)賲㈤唸D2實(shí)施例,在數(shù)字訊號(hào)處理器30中有三個(gè)組件直接牽涉到本發(fā)明的跳躍式浮點(diǎn)數(shù)運(yùn)算法萃取位移裝置38、第一表示法轉(zhuǎn)換電路33、及第二表示法轉(zhuǎn)換電路33、35。其中第一及第二表示法轉(zhuǎn)換電路33、35能執(zhí)行定點(diǎn)數(shù)表示法與跳躍式浮點(diǎn)數(shù)表示法之間的轉(zhuǎn)換功能,其運(yùn)作的方式可完全參照上述圖4至圖8實(shí)施例,而萃取位移裝置38依功能細(xì)分,又可區(qū)別為一萃取裝置37以及一位移裝置39,請(qǐng)見(jiàn)圖9,圖9為圖2數(shù)字訊號(hào)處理器30部分原件的一實(shí)施例的功能方塊圖,包含有萃取裝置37、位移裝置39、與乘法電路36。倘若輸入乘法電路36中的二低位數(shù)(n位)數(shù)字?jǐn)?shù)據(jù)皆具有跳躍式浮點(diǎn)數(shù)表示法,在相乘的過(guò)程中,如圖3所示的位數(shù)據(jù)、與尾端識(shí)別碼可分開(kāi)視之,因此,乘法電路36可將二低位數(shù)(n位)數(shù)字?jǐn)?shù)據(jù)各自的位數(shù)據(jù)直接相乘。而此時(shí)二低位數(shù)數(shù)字?jǐn)?shù)據(jù)亦送進(jìn)萃取裝置37中,萃取出該二低位數(shù)數(shù)(n位)位數(shù)據(jù)中各自的尾端識(shí)別碼,判斷出相關(guān)的信息(如個(gè)別的位移模式及N值),接著將此相關(guān)信息傳送入位移裝置39,依據(jù)判斷出的位移模式及N值,將經(jīng)由乘法電路36處理后的數(shù)據(jù)作出對(duì)應(yīng)的小數(shù)點(diǎn)位移,以得出正確的(具有定點(diǎn)數(shù)表示法的)一高位數(shù)(2n位)數(shù)字?jǐn)?shù)據(jù)。
圖2實(shí)施例中的電路結(jié)構(gòu)并非固定,可根據(jù)不同需求而作調(diào)整,因此,我們接下來(lái)提出一特定結(jié)構(gòu)的數(shù)字訊號(hào)處理器,充分披露本發(fā)明的跳躍式浮點(diǎn)數(shù)運(yùn)算法與硬設(shè)備配合運(yùn)用的情形。請(qǐng)參閱圖10,圖10為圖2的一詳細(xì)實(shí)施例的功能方塊圖。圖10的數(shù)字訊號(hào)處理器50包含有一數(shù)據(jù)接收端52、一乘法電路56、一萃取裝置57、一位移裝置59、一第三表示法轉(zhuǎn)換電路53、一選擇運(yùn)算模塊60、一儲(chǔ)存裝置62、一第四表示法轉(zhuǎn)換電路55、以及一數(shù)據(jù)寫(xiě)入端66。數(shù)據(jù)接收端52可接收多筆具有跳躍式浮點(diǎn)數(shù)表示法的n位的數(shù)字?jǐn)?shù)據(jù),乘法電路56電連于數(shù)據(jù)接收端52,用來(lái)接收二筆具有跳躍式浮點(diǎn)數(shù)表示法的n位的數(shù)字?jǐn)?shù)據(jù),乘法電路56亦會(huì)將此二n位的數(shù)字?jǐn)?shù)據(jù)相乘,產(chǎn)生具有跳躍式浮點(diǎn)數(shù)表示法的2n位的數(shù)字?jǐn)?shù)據(jù),再經(jīng)由萃取裝置57及位移裝置59(萃取裝置57與位移裝置59可合并視為一萃取位移裝置58)處理后,得出具有定點(diǎn)數(shù)表示法的2n位的第五數(shù)字?jǐn)?shù)據(jù)。在此同時(shí),電連于數(shù)據(jù)接收端52的第三表示法轉(zhuǎn)換電路53亦接收一具有跳躍式浮點(diǎn)數(shù)表示法的n位的數(shù)字?jǐn)?shù)據(jù),依據(jù)該n位的數(shù)字?jǐn)?shù)據(jù)的尾端識(shí)別碼及標(biāo)識(shí)位,用來(lái)將此n位的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有定點(diǎn)數(shù)表示法的一2n位的第六數(shù)字?jǐn)?shù)據(jù)。選擇運(yùn)算模塊60包含一選擇裝置69及一運(yùn)算單元61,選擇裝置69電連于第三表示法轉(zhuǎn)換電路53以及位移裝置59,用來(lái)由2n位的第五、及第六數(shù)字?jǐn)?shù)據(jù)中選擇其一輸出,因此選擇裝置69可使用一多任務(wù)器(Multiplexer)完成。運(yùn)算單元61電連于選擇裝置69,用來(lái)接收選擇出的(2n位的)第五數(shù)字?jǐn)?shù)據(jù)或第六數(shù)字?jǐn)?shù)據(jù),而運(yùn)算單元61包含另一輸入端,用來(lái)接收由儲(chǔ)存裝置62傳送的2n位的第七數(shù)字?jǐn)?shù)據(jù),如此一來(lái),運(yùn)算單元61可對(duì)這些具有定點(diǎn)數(shù)表示法的(2n位的)數(shù)字?jǐn)?shù)據(jù)(第七、第一、或第二數(shù)字?jǐn)?shù)據(jù))執(zhí)行各種運(yùn)算的功能。請(qǐng)注意,本實(shí)施例強(qiáng)調(diào)了運(yùn)算單元61所處理的數(shù)字?jǐn)?shù)據(jù)具有定點(diǎn)數(shù)表示,其理由在于具有跳躍式浮點(diǎn)數(shù)表示法的數(shù)字?jǐn)?shù)據(jù)在轉(zhuǎn)換時(shí)已經(jīng)一放大位移的過(guò)程,因此其小數(shù)點(diǎn)的位置已有所變動(dòng),使得加、減法運(yùn)算的復(fù)雜度過(guò)高,因此本實(shí)施例中將所有數(shù)字?jǐn)?shù)據(jù)皆先轉(zhuǎn)換為具有定點(diǎn)數(shù)表示法的型態(tài),再送入運(yùn)算單元61中加以運(yùn)算。至于乘法的部分,則較容易處理具有跳躍式浮點(diǎn)數(shù)表示法的數(shù)字?jǐn)?shù)據(jù),如前述相同,可分別將數(shù)字?jǐn)?shù)據(jù)中的位數(shù)據(jù)、尾端識(shí)別碼分開(kāi)視之,在相乘時(shí),將二數(shù)字?jǐn)?shù)據(jù)中各自的位數(shù)據(jù)直接相乘,最后再利用尾端識(shí)別碼補(bǔ)償(Compensate)調(diào)整小數(shù)點(diǎn)的位置即可。
接下來(lái),運(yùn)算單元61輸出處理后的一2n位的第八數(shù)字?jǐn)?shù)據(jù)至儲(chǔ)存裝置62,儲(chǔ)存裝置62的功能即用來(lái)儲(chǔ)存經(jīng)選擇運(yùn)算模塊60處理后的多筆數(shù)字?jǐn)?shù)據(jù),而在實(shí)際實(shí)施時(shí),儲(chǔ)存裝置62可以一累積器(Accumulator)完成。第四表示法轉(zhuǎn)換電路55將具有定點(diǎn)數(shù)表示法的2n位的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有跳躍式浮點(diǎn)數(shù)表示法的一n位的數(shù)字?jǐn)?shù)據(jù),并由數(shù)據(jù)寫(xiě)入端66將此具有跳躍式浮點(diǎn)數(shù)表示法的n位的數(shù)字?jǐn)?shù)據(jù)寫(xiě)入前述的存儲(chǔ)裝置中。
為將圖1實(shí)施例的功能納入本發(fā)明的實(shí)施例中,使本發(fā)明的數(shù)字訊號(hào)處理器能同時(shí)處理具有定點(diǎn)數(shù)表示法(包含整數(shù)表示法(IntegerRepresentation))、及跳躍式浮點(diǎn)數(shù)表示法的數(shù)據(jù),在接下來(lái)的實(shí)施例中加入一啟動(dòng)控制訊號(hào)(Enabling Control Signal),以切換圖10中部份與本發(fā)明技術(shù)特征相關(guān)的組件的功能。請(qǐng)參閱圖11,圖11為圖2的另一詳細(xì)實(shí)施例的功能方塊圖,近似于圖10實(shí)施例,其數(shù)字訊號(hào)處理器70亦包含有一數(shù)據(jù)接收端72、一乘法電路76、一萃取裝置77、一位移裝置79、一第五表示法轉(zhuǎn)換電路73、一選擇運(yùn)算模塊80、一儲(chǔ)存裝置82、一第六表示法轉(zhuǎn)換電路75、以及一數(shù)據(jù)寫(xiě)入端86。第五及第六表示法轉(zhuǎn)換電路73、75可對(duì)應(yīng)至圖10中第三及第四表示法轉(zhuǎn)換電路53、55。本實(shí)施例中最重要的技術(shù)特征為萃取裝置77、位移裝置79、第五表示法轉(zhuǎn)換電路73、以及第六表示法轉(zhuǎn)換電路75皆會(huì)連接至至少一啟動(dòng)控制訊號(hào)ES,此啟動(dòng)控制訊號(hào)ES可用來(lái)判斷是否啟動(dòng)與其相連的萃取裝置77、位移裝置79、第五及第六表示法轉(zhuǎn)換電路73、75。當(dāng)乘法電路76接收的二筆n位的數(shù)字?jǐn)?shù)據(jù)具有跳躍式浮點(diǎn)數(shù)表示法時(shí),啟動(dòng)控制訊號(hào)ES就會(huì)啟動(dòng)萃取裝置77及位移裝置79,進(jìn)行圖10實(shí)施例中所述的運(yùn)作,而當(dāng)乘法電路76所接收的二筆n位的數(shù)字?jǐn)?shù)據(jù)具有定點(diǎn)數(shù)表示法時(shí),啟動(dòng)控制訊號(hào)ES就不啟動(dòng)萃取裝置77及位移裝置79,乘法電路76則單純地將此二n位的數(shù)字?jǐn)?shù)據(jù)相乘后,產(chǎn)生一具有定點(diǎn)數(shù)表示法的2n位的數(shù)字?jǐn)?shù)據(jù),此時(shí)萃取裝置77及位移裝置79可視為圖1已知實(shí)施例中的乘法位移裝置18。同理,當(dāng)啟動(dòng)控制訊號(hào)ES啟動(dòng)第五表示法轉(zhuǎn)換電路73時(shí),第五表示法轉(zhuǎn)換電路73執(zhí)行如圖10中第三表示法轉(zhuǎn)換電路53的運(yùn)作,將具有跳躍式浮點(diǎn)數(shù)表示法的n位的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有定點(diǎn)數(shù)表示法的2n位的數(shù)字?jǐn)?shù)據(jù),但當(dāng)啟動(dòng)控制訊號(hào)ES不啟動(dòng)第五表示法轉(zhuǎn)換電路73時(shí),第五表示法轉(zhuǎn)換電路73經(jīng)由一已知基本的正負(fù)號(hào)延伸程序(Sign Extension),將具有定點(diǎn)數(shù)表示法的n位的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有定點(diǎn)數(shù)表示法的2n位的數(shù)字?jǐn)?shù)據(jù),此時(shí)第五表示法轉(zhuǎn)換電路73的功能等同于圖1已知實(shí)施例中的第一位移裝置14。同理,當(dāng)啟動(dòng)控制訊號(hào)ES啟動(dòng)第六表示法轉(zhuǎn)換電路75時(shí),第六表示法轉(zhuǎn)換電路75執(zhí)行如圖10中第四表示法轉(zhuǎn)換電路55的運(yùn)作,將具有定點(diǎn)數(shù)表示法的2n位的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有跳躍式浮點(diǎn)數(shù)表示法的n位的數(shù)字?jǐn)?shù)據(jù);當(dāng)啟動(dòng)控制訊號(hào)ES不啟動(dòng)第六表示法轉(zhuǎn)換電路75時(shí),第六表示法轉(zhuǎn)換電路75將具有定點(diǎn)數(shù)表示法的2n位的數(shù)字?jǐn)?shù)據(jù)直接舍棄其中n位,轉(zhuǎn)換成為具有定點(diǎn)數(shù)表示法的n位的數(shù)字?jǐn)?shù)據(jù),此時(shí)第六表示法轉(zhuǎn)換電路76的功能等同于圖1已知實(shí)施例中的第二位移裝置24。
本發(fā)明所披露的一新型的跳躍式浮點(diǎn)數(shù)運(yùn)算法及跳躍式浮點(diǎn)數(shù)表示法可在根本上改善數(shù)值位轉(zhuǎn)換時(shí)產(chǎn)生的誤差,使一高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為一低位數(shù)數(shù)字?jǐn)?shù)據(jù)時(shí),可以用較少重復(fù)位的方式完成轉(zhuǎn)換,保留更多有效的位數(shù)值,不犧牲精準(zhǔn)度。而在數(shù)字訊號(hào)處理器的架構(gòu)中引入本發(fā)明跳躍式浮點(diǎn)數(shù)表示法的概念,并設(shè)置相對(duì)應(yīng)的硬設(shè)備后,可將數(shù)字?jǐn)?shù)據(jù)以較低位數(shù)的型態(tài)處理并儲(chǔ)存至一存儲(chǔ)器中,而在之后將低位數(shù)數(shù)字?jǐn)?shù)據(jù)讀取回原先的高位數(shù)數(shù)字?jǐn)?shù)據(jù)時(shí),又可較精準(zhǔn)并有效率地完成還原的效果,如此一來(lái)便可在不耗費(fèi)過(guò)多額外資源的情況下,顯著地降低量化誤差。
上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明的權(quán)利要求所做的均等變化與修飾,皆應(yīng)屬本發(fā)明專利的涵蓋范圍。
權(quán)利要求
1.一種數(shù)字訊號(hào)處理器,用來(lái)處理至少一筆數(shù)字?jǐn)?shù)據(jù),該至少一筆數(shù)字?jǐn)?shù)據(jù)分別具有多個(gè)數(shù)值表示法,該多個(gè)數(shù)值表示法至少包含有一定點(diǎn)數(shù)表示法以及一跳躍式浮點(diǎn)數(shù)表示法,該數(shù)字訊號(hào)處理器包含有一乘法電路,用來(lái)將至少二低位數(shù)數(shù)字?jǐn)?shù)據(jù)相乘產(chǎn)生一高位數(shù)數(shù)字?jǐn)?shù)據(jù);一萃取位移裝置,電連于該乘法電路,用來(lái)將具有該跳躍式浮點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù);多個(gè)表示法轉(zhuǎn)換電路,每一表示法轉(zhuǎn)換電路利用一跳躍式浮點(diǎn)數(shù)運(yùn)算法,將該至少一筆數(shù)字?jǐn)?shù)據(jù)中任一數(shù)字?jǐn)?shù)據(jù)于該定點(diǎn)數(shù)表示法及該跳躍式浮點(diǎn)數(shù)表示法之間作轉(zhuǎn)換;以及一運(yùn)算單元,用來(lái)運(yùn)算該至少一筆數(shù)字?jǐn)?shù)據(jù)。
2.如權(quán)利要求1所述的數(shù)字訊號(hào)處理器,其還包含一儲(chǔ)存裝置,電連于該運(yùn)算單元,用來(lái)儲(chǔ)存該至少一筆數(shù)字?jǐn)?shù)據(jù)。
3.如權(quán)利要求1所述的數(shù)字訊號(hào)處理器,其中該跳躍式浮點(diǎn)數(shù)運(yùn)算法用來(lái)將具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該跳躍式浮點(diǎn)數(shù)表示法的一低位數(shù)數(shù)字?jǐn)?shù)據(jù),或者將具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)。
4.如權(quán)利要求3所述的數(shù)字訊號(hào)處理器,其中該跳躍式浮點(diǎn)數(shù)運(yùn)算法依據(jù)該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小,將具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)放大位移N位,并舍棄預(yù)定數(shù)目的位數(shù),再設(shè)置一尾端識(shí)別碼,以產(chǎn)生具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù),其中N為大于或等于零的整數(shù)。
5.如權(quán)利要求4所述的數(shù)字訊號(hào)處理器,其中N的值隨著該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小而變動(dòng),當(dāng)該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值愈大,N的值愈??;當(dāng)該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值愈小,N的值愈大。
6.如權(quán)利要求4所述的數(shù)字訊號(hào)處理器,其中該跳躍式浮點(diǎn)數(shù)運(yùn)算法包含有多個(gè)位移模式,每一位移模式分別對(duì)應(yīng)至不同的N值。
7.如權(quán)利要求6所述的數(shù)字訊號(hào)處理器,其中每一數(shù)字?jǐn)?shù)據(jù)包含一標(biāo)識(shí)位,位移模式的選定及對(duì)應(yīng)的N值由比較該標(biāo)識(shí)位與該高位數(shù)數(shù)字?jǐn)?shù)據(jù)中的其它位而得。
8.如權(quán)利要求7所述的數(shù)字訊號(hào)處理器,其中該跳躍式浮點(diǎn)數(shù)運(yùn)算法依據(jù)該尾端識(shí)別碼以及該標(biāo)識(shí)位,將具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)。
9.如權(quán)利要求4所述的數(shù)字訊號(hào)處理器,其中在該萃取位移裝置中,當(dāng)輸入該乘法電路的該二低位數(shù)數(shù)字?jǐn)?shù)據(jù)皆具有該跳躍式浮點(diǎn)數(shù)表示法時(shí),該萃取位移裝置依據(jù)具有該跳躍式浮點(diǎn)數(shù)表示法的該二低位數(shù)數(shù)字?jǐn)?shù)據(jù)的尾端識(shí)別碼,將具有該跳躍式浮點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)。
10.如權(quán)利要求1所述的數(shù)字訊號(hào)處理器,其中該萃取位移裝置以及該多個(gè)表示法轉(zhuǎn)換電路連接于至少一啟動(dòng)控制訊號(hào),用來(lái)分別判斷是否啟動(dòng)該萃取位移裝置以及該多個(gè)表示法轉(zhuǎn)換電路。
11.如權(quán)利要求1所述的數(shù)字訊號(hào)處理器,其中該運(yùn)算單元用來(lái)運(yùn)算具有該定點(diǎn)數(shù)表示法的該至少一筆數(shù)字?jǐn)?shù)據(jù)。
12.如權(quán)利要求1所述的數(shù)字訊號(hào)處理器,其還包含有一數(shù)據(jù)接收端,用來(lái)接收至少一筆數(shù)字?jǐn)?shù)據(jù);以及一數(shù)據(jù)寫(xiě)入端,用來(lái)將具有該跳躍式浮點(diǎn)數(shù)表示法的至少一低位數(shù)數(shù)字?jǐn)?shù)據(jù)寫(xiě)入一存儲(chǔ)裝置。
13.一種用于一數(shù)字訊號(hào)處理器中的方法,用來(lái)將具有一定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有一跳躍式浮點(diǎn)數(shù)表示法的一低位數(shù)數(shù)字?jǐn)?shù)據(jù),該方法包含有(a)依據(jù)該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小,將具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)放大位移N位,其中N為大于或等于零的整數(shù),且N的值隨著該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小而變動(dòng);(b)在進(jìn)行步驟(a)后,舍去該高位數(shù)數(shù)字?jǐn)?shù)據(jù)中一預(yù)定數(shù)目的位數(shù);以及(c)在進(jìn)行步驟(b)后,設(shè)置一尾端識(shí)別碼,以產(chǎn)生具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù),其中該尾端識(shí)別碼對(duì)應(yīng)于N的值。
14.如權(quán)利要求13所述的方法,其中當(dāng)該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值愈大,N的值愈??;當(dāng)該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值愈小,N的值愈大。
15.如權(quán)利要求13所述的方法,其還包含(d)在步驟(a)中,設(shè)置多個(gè)位移模式,每一位移模式分別對(duì)應(yīng)至不同的N值;(e)在進(jìn)行步驟(d)后,依據(jù)該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小,選定一位移模式及對(duì)應(yīng)的N值,將具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)放大位移該對(duì)應(yīng)的N位;以及(f)在步驟(c)中且在進(jìn)行步驟(e)后,設(shè)置一對(duì)應(yīng)于該位移模式的尾端識(shí)別碼。
16.如權(quán)利要求15所述的方法,其中該高位數(shù)數(shù)字?jǐn)?shù)據(jù)包含一標(biāo)識(shí)位,N的值及該位移模式的選定是由比較該標(biāo)識(shí)位與該高位數(shù)數(shù)字?jǐn)?shù)據(jù)中的其它位而得。
17.如權(quán)利要求16所述的方法,其中該低位數(shù)數(shù)字?jǐn)?shù)據(jù)包含該標(biāo)識(shí)位,且具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù)可依據(jù)該尾端識(shí)別碼以及該標(biāo)識(shí)位,還原成為具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)。
18.如權(quán)利要求13所述的方法,其還包含(g)在進(jìn)行步驟(c)后,將具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù)寫(xiě)入一存儲(chǔ)裝置中。
19.一種用于一數(shù)字訊號(hào)處理器中的方法,用來(lái)將具有一跳躍式浮點(diǎn)數(shù)表示法的一低位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有一定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù),其中具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù)包含一尾端識(shí)別碼,該方法包含有依據(jù)該尾端識(shí)別碼,將該低位數(shù)數(shù)字?jǐn)?shù)據(jù)縮小位移N位,其中N為大于或等于零的整數(shù);以及增補(bǔ)一預(yù)定數(shù)目的位數(shù)于該低位數(shù)數(shù)字?jǐn)?shù)據(jù)中。
20.如權(quán)利要求19所述的方法,其中該高位數(shù)數(shù)字?jǐn)?shù)據(jù)包含一標(biāo)識(shí)位,該方法還包含依據(jù)該標(biāo)識(shí)位,決定該N位中每一位的值;以及依據(jù)該標(biāo)識(shí)位,決定所增補(bǔ)的該預(yù)定數(shù)目的位數(shù)中每一位的值。
21.如權(quán)利要求19所述的方法,其中該尾端識(shí)別碼包含有多個(gè)位移模式,每一位移模式分別對(duì)應(yīng)至不同的N值,該方法還包含依據(jù)該尾端識(shí)別碼,選定一位移模式及對(duì)應(yīng)的N值。
22.一種用來(lái)處理至少一筆數(shù)字?jǐn)?shù)據(jù)的數(shù)字訊號(hào)處理器,該至少一筆數(shù)字?jǐn)?shù)據(jù)分別具有多個(gè)數(shù)值表示法,該多個(gè)數(shù)值表示法至少包含有一定點(diǎn)數(shù)表示法以及一跳躍式浮點(diǎn)數(shù)表示法,該數(shù)字訊號(hào)處理器包含有一數(shù)據(jù)接收端,用來(lái)接收至少一筆低位數(shù)數(shù)字?jǐn)?shù)據(jù);一乘法電路,電連于該數(shù)據(jù)接收端,用來(lái)將具有該定點(diǎn)數(shù)表示法的二低位數(shù)數(shù)字?jǐn)?shù)據(jù)相乘,產(chǎn)生一具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù),或者將具有該跳躍式浮點(diǎn)數(shù)表示法的二低位數(shù)數(shù)字?jǐn)?shù)據(jù)相乘,產(chǎn)生一具有該跳躍式浮點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù);一萃取位移裝置,電連于該乘法電路,用來(lái)將具有該跳躍式浮點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù);一第一表示法轉(zhuǎn)換電路,電連于該數(shù)據(jù)接收端,用來(lái)將具有該跳躍式浮點(diǎn)數(shù)表示法的一低位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù),或者將具有該定點(diǎn)數(shù)表示法的一低位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù);一選擇運(yùn)算模塊,電連于該第一表示法轉(zhuǎn)換電路以及萃取位移裝置,用來(lái)執(zhí)行選擇及運(yùn)算的功能;一儲(chǔ)存裝置,電連于該選擇運(yùn)算模塊,用來(lái)儲(chǔ)存經(jīng)該選擇運(yùn)算模塊處理后的至少一筆數(shù)字?jǐn)?shù)據(jù);一第二表示法轉(zhuǎn)換電路,電連于該儲(chǔ)存裝置,用來(lái)將具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該跳躍式浮點(diǎn)數(shù)表示法的一低位數(shù)數(shù)字?jǐn)?shù)據(jù);以及一數(shù)據(jù)寫(xiě)入端,用來(lái)將具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù)寫(xiě)入一存儲(chǔ)裝置。
23.如權(quán)利要求22所述的數(shù)字訊號(hào)處理器,其中每一數(shù)字?jǐn)?shù)據(jù)包含一標(biāo)識(shí)位。
24.如權(quán)利要求23所述的數(shù)字訊號(hào)處理器,其中每一具有該跳躍式浮點(diǎn)數(shù)表示法的低位數(shù)數(shù)字?jǐn)?shù)據(jù)還包含一尾端識(shí)別碼。
25.如權(quán)利要求24所述的數(shù)字訊號(hào)處理器,其中該第一表示法轉(zhuǎn)換電路依據(jù)具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù)的該尾端識(shí)別碼及該標(biāo)識(shí)位,將具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)。
26.如權(quán)利要求24所述的數(shù)字訊號(hào)處理器,其中該萃取位移裝置依據(jù)該乘法電路中具有該跳躍式浮點(diǎn)數(shù)表示法的該二低位數(shù)數(shù)字?jǐn)?shù)據(jù)的尾端識(shí)別碼,將具有該跳躍式浮點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)。
27.如權(quán)利要求22所述的數(shù)字訊號(hào)處理器,其中該第二表示法轉(zhuǎn)換電路依據(jù)該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小,將具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)放大位移N位,并舍棄預(yù)定數(shù)目的位數(shù),再設(shè)置一尾端識(shí)別碼,以產(chǎn)生具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù),其中N為大于或等于零的整數(shù)。
28.如權(quán)利要求27所述的數(shù)字訊號(hào)處理器,其中N的值隨著該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值大小而變動(dòng),當(dāng)該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值愈大,N的值愈?。划?dāng)該高位數(shù)數(shù)字?jǐn)?shù)據(jù)的絕對(duì)值愈小,N的值愈大。
29.如權(quán)利要求22所述的數(shù)字訊號(hào)處理器,其中該萃取位移裝置、該第一表示法轉(zhuǎn)換電路、以及該第二表示法轉(zhuǎn)換電路連接于至少一啟動(dòng)控制訊號(hào),用來(lái)分別判斷是否啟動(dòng)該萃取位移裝置、該第一表示法轉(zhuǎn)換電路、以及該第二表示法轉(zhuǎn)換電路。
30.如權(quán)利要求29所述的數(shù)字訊號(hào)處理器,其中當(dāng)該啟動(dòng)控制訊號(hào)啟動(dòng)該第一表示法轉(zhuǎn)換電路時(shí),該第一表示法轉(zhuǎn)換電路將具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù);當(dāng)該啟動(dòng)控制訊號(hào)不啟動(dòng)該第一表示法轉(zhuǎn)換電路時(shí),該第一表示法轉(zhuǎn)換電路將具有該定點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)。
31.如權(quán)利要求29所述的數(shù)字訊號(hào)處理器,其中當(dāng)該啟動(dòng)控制訊號(hào)啟動(dòng)該第二表示法轉(zhuǎn)換電路時(shí),該第二表示法轉(zhuǎn)換電路將具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該跳躍式浮點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù);當(dāng)該啟動(dòng)控制訊號(hào)不啟動(dòng)該第二表示法轉(zhuǎn)換電路時(shí),該第二表示法轉(zhuǎn)換電路將具有該定點(diǎn)數(shù)表示法的該高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的該低位數(shù)數(shù)字?jǐn)?shù)據(jù)。
32.如權(quán)利要求22所述的數(shù)字訊號(hào)處理器,其中該選擇運(yùn)算模塊用來(lái)選擇及運(yùn)算至少一筆具有該定點(diǎn)數(shù)表示法的高位數(shù)數(shù)字?jǐn)?shù)據(jù)。
33.如權(quán)利要求22所述的數(shù)字訊號(hào)處理器,其中該多個(gè)數(shù)值表示法還包含有一整數(shù)表示法。
全文摘要
本發(fā)明提供一種數(shù)字訊號(hào)處理器,用來(lái)處理具有一定點(diǎn)數(shù)表示法或一跳躍式浮點(diǎn)數(shù)表示法的多筆數(shù)字?jǐn)?shù)據(jù)。該數(shù)字訊號(hào)處理器包含有一乘法電路、一萃取位移裝置、多個(gè)表示法轉(zhuǎn)換電路以及一運(yùn)算單元。乘法電路用來(lái)將二低位數(shù)數(shù)字?jǐn)?shù)據(jù)相乘產(chǎn)生一高位數(shù)數(shù)字?jǐn)?shù)據(jù);萃取位移裝置電連于該乘法電路,用來(lái)將具有該跳躍式浮點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為具有該定點(diǎn)數(shù)表示法的一高位數(shù)數(shù)字?jǐn)?shù)據(jù);每一表示法轉(zhuǎn)換電路將一數(shù)字?jǐn)?shù)據(jù)在該定點(diǎn)數(shù)表示法及該跳躍式浮點(diǎn)數(shù)表示法之間作轉(zhuǎn)換;運(yùn)算單元用來(lái)運(yùn)算該多筆數(shù)字?jǐn)?shù)據(jù)。
文檔編號(hào)G06F7/52GK1570847SQ03133040
公開(kāi)日2005年1月26日 申請(qǐng)日期2003年7月23日 優(yōu)先權(quán)日2003年7月23日
發(fā)明者雷永群, 陳玉銖, 張佑齊 申請(qǐng)人:聯(lián)發(fā)科技股份有限公司