專利名稱:舍入運(yùn)算方法及其運(yùn)算裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及例如在固定小數(shù)點(diǎn)運(yùn)算中使用低精度的乘法器來提高運(yùn)算結(jié)果的精度,同時(shí)使運(yùn)算高速化的舍入運(yùn)算方法及其運(yùn)算裝置。
背景技術(shù):
目前,例如將作為聲音壓縮技術(shù)的MP3(MPEG-1 Audio Layer 3)進(jìn)行譯碼(解碼)的譯碼器中,需要高速乘法處理。
圖2是表示將現(xiàn)有的MP3文件進(jìn)行譯碼的處理的流程(流程圖)的圖。
在MP3的譯碼時(shí),未圖示的譯碼器基于從17比特(下稱“bit”)的MP3文件1讀入的數(shù)據(jù)(步驟S1),作為物理量進(jìn)行生成具有含義的行列數(shù)據(jù)的逆量子化處理(步驟S2)。譯碼器為將逆量子化得到的17bit的各行列要素輸入未圖示的高速的16bit的乘法器(步驟S3),而需要將其舍入為16bit數(shù)據(jù)2(即舍0入1)(步驟S4)。因此,必須將MP3文件1的最上位bit(下稱“MSB”)或最下位(下稱“LSB”)舍去。舍去的數(shù)據(jù)用乘法器運(yùn)算(步驟S5),從譯碼器輸出(步驟S6)。
但是,在將先述的數(shù)據(jù)舍入為16bit的處理(步驟S4)中,當(dāng)舍去LSB時(shí),數(shù)據(jù)精度惡化。與之相對(duì),當(dāng)舍去MSB時(shí),在數(shù)據(jù)完整使用MSB的情況下,數(shù)據(jù)被舍入為無含義的數(shù)值,其結(jié)果可能會(huì)使譯碼了的聲音失真。
用于解決這樣的舍入問題的方法在現(xiàn)有的專利文獻(xiàn)1中被提出。
專利文獻(xiàn)1美國(guó)專利第6,360,204B1圖3是表示現(xiàn)有的專利文獻(xiàn)1中記載的舍入運(yùn)算方法的圖。
該舍入運(yùn)算方法中,通過如下研究舍入處理,使音頻譯碼器的精度提高。
由于乘數(shù)3及被乘數(shù)4分別使用sbit的數(shù)字信號(hào)處理器(Digitalsignal processor下稱“DSP”)得到的音頻數(shù)據(jù)的乘法結(jié)果5為最大2s bit,因此,將其按如下順序舍入為sbit。
首先,選擇確保乘法結(jié)果5的上位sbit或下位sbit其中之一。通常,在上位bit的舍入處理中舍入精度低,在下位bit的舍入處理中舍入精度高。它們的選擇方法是任意的。其次,在確保上位sbit時(shí),確認(rèn)數(shù)據(jù)飽和的有無(即是否使用了MSB)(步驟S10),若不飽和,則進(jìn)行舍入處理(步驟S11),若飽和則不進(jìn)行舍入處理。
通過現(xiàn)有的舍入運(yùn)算方法,可提高安裝于sbit的DSP中的音頻譯碼器的精度,但如圖3所示,可選擇的精度在確保上位bit的情況和確保下位bit的情況下,存在限定在兩個(gè)方面的問題,其應(yīng)用程序(application)(應(yīng)用)也被限定在音頻譯碼器中。
即,在現(xiàn)有的舍入運(yùn)算方法或運(yùn)算裝置中,例如在通用的微處理器(下稱“MCU”)中,難以使用bit數(shù)少的低精度的乘法器將乘法高速化,同時(shí)難以適宜地選擇并確保運(yùn)算數(shù)據(jù)的精度,而且,將目標(biāo)應(yīng)用程序不限定在音頻譯碼器中進(jìn)行應(yīng)用也是困難的。
發(fā)明內(nèi)容
本發(fā)明第一方面的舍入運(yùn)算方法中,判定是否使用了由zbit(其中z≥2)構(gòu)成的輸入數(shù)據(jù)中的上位nbit(其中,z>n≥2)的區(qū)域,若未使用所述特定區(qū)域,則將所述輸入數(shù)據(jù)中的上述上位nbit和下位(z/2-n)bit舍去,舍入為z/2bit值,若使用所述特定區(qū)域,則將所述輸入數(shù)據(jù)中的下位z/2bit舍去,舍入為z/2bit。
在使用了該第一方面的舍入運(yùn)算方法的第四方面的運(yùn)算裝置中,具有舍入處理單元、存儲(chǔ)單元、z/2bit乘法器、位數(shù)調(diào)整單元。
所述舍入處理單元中,分別輸入由zbit(其中,z≥2)構(gòu)成的乘數(shù)及被乘數(shù),判定是否分別使用了所述乘數(shù)及所述被乘數(shù)中的各上位nbit(其中,z>n≥2)的特定區(qū)域,若未使用所述特定區(qū)域,則將所述乘數(shù)及所述被乘數(shù)的所述上位nbit和下位(z/2-n)bit舍去,分別舍入為z/2bit值,若使用所述特定區(qū)域,則將所述乘數(shù)及所述被乘數(shù)的下位z/2bit舍去,分別舍入為z/2bit。所述存儲(chǔ)單元分別存儲(chǔ)所述舍去的各bit數(shù)的信息。所述乘法器將由所述舍入處理單元舍入的所述乘數(shù)和所述被乘數(shù)相乘,輸出乘法結(jié)果。另外,所述位數(shù)調(diào)整單元基于所述存儲(chǔ)單元中存儲(chǔ)的所述bit數(shù)的信息將所述乘法結(jié)果移位來調(diào)整位數(shù)。
這樣,在第一、第四方面的運(yùn)算方法或運(yùn)算裝置中,在引入舍入處理中,根據(jù)條件將確保的位字段(多個(gè)bit)選擇為上位比特位字段或下位位字段,另外,由于可通過應(yīng)用程序調(diào)節(jié)精度,從而使用高速的低精度乘法器將運(yùn)算處理高速化,且確保運(yùn)算的輸出精度。
在第二方面的舍入運(yùn)算方法中,判定是否使用了由zbit(其中,z≥2)構(gòu)成的輸入數(shù)據(jù)中的上位z/2bit的特定區(qū)域的多少比特,若使用上述特定區(qū)域的xbit(其中,0≤x≤z/2),則將所述輸入數(shù)據(jù)中的上位(z/2-x)bit和下位xbit舍去,舍入為z/2bit。
在使用了第二方面的舍入運(yùn)算方法的第五方面的運(yùn)算裝置中,具有舍入處理單元、存儲(chǔ)單元、z/2bit乘法器、位數(shù)調(diào)整單元。
所述舍入處理單元中,分別輸入由zbit(其中,z≥2)構(gòu)成的乘數(shù)及被乘數(shù),判定是否分別使用了所述乘數(shù)及所述被乘數(shù)中的各上位nbit的特定區(qū)域的多少bit,若使用所述特定區(qū)域的xbit(其中,0≤x≤z/2),則將所述乘數(shù)及所述被乘數(shù)的所述上位(z/2-x)bit和下位xbit舍去,分別舍入為z/2bit。所述存儲(chǔ)單元分別存儲(chǔ)所述舍去的各bit數(shù)的信息。所述乘法器將由所述舍入處理單元舍入的所述乘數(shù)和所述被乘數(shù)相乘,輸出乘法結(jié)果。另外,所述位數(shù)調(diào)整單元基于所述存儲(chǔ)單元中存儲(chǔ)的所述比特?cái)?shù)的信息將所述乘法結(jié)果移位來調(diào)整位數(shù)。
這樣,在第二、第五方面的運(yùn)算方法或運(yùn)算裝置中,在引入舍入處理中,根據(jù)條件動(dòng)態(tài)地改變確保的位字段(多個(gè)bit)的范圍,由此,使用高速的低精度乘法器將運(yùn)算處理高速化,且確保運(yùn)算的輸出精度。
在第三方面的舍入運(yùn)算方法中,在分別由zbit(其中,z≥2)構(gòu)成的多個(gè)輸入數(shù)據(jù)中,檢測(cè)是否使用了所述各輸入數(shù)據(jù)中的上位z/2bit的特定區(qū)域的多少比特,求出使用的bit數(shù)的最大值x(其中,0≤x≤z/2),將所述各輸入數(shù)據(jù)的上位(z/2-x)bit和下位xbit舍去,分別舍入為z/2bit。
在使用了該第三方面的舍入運(yùn)算方法的第六方面的運(yùn)算裝置中,具有舍入處理單元、存儲(chǔ)單元、z/2bit乘法器、位數(shù)調(diào)整單元。
所述舍入處理單元中,分別輸入由zbit(其中,z≥2)構(gòu)成的乘數(shù)及被乘數(shù),檢測(cè)是否使用了所述多個(gè)乘數(shù)及被乘數(shù)中的各上位z/2bit的特定區(qū)域的多少bit,求出使用的bit數(shù)的最大值x(其中,0≤x≤z/2),將所述乘數(shù)及所述被乘數(shù)的所述上位(z/2-x)bit和下位xbit舍去,分別舍入為z/2bit。所述存儲(chǔ)單元分別存儲(chǔ)所述舍去的各bit數(shù)的信息。所述乘法器將由所述舍入處理單元舍入的所述乘數(shù)和所述被乘數(shù)相乘,輸出乘法結(jié)果。另外,所述位數(shù)調(diào)整單元基于所述存儲(chǔ)單元中存儲(chǔ)的所述比特?cái)?shù)的信息將所述乘法結(jié)果移位來調(diào)整位數(shù)。
這樣,在第三、第六方面的舍入運(yùn)算方法或運(yùn)算裝置中,在引入舍入處理中,通過計(jì)算單位保持引入舍入的bit數(shù),由此確保運(yùn)算的輸出精度,減少存儲(chǔ)容量。
根據(jù)第一、第四方面的發(fā)明,具有如下(i)~(iii)這樣的效果。
(i)由于研究了舍入處理,故能夠確保運(yùn)算結(jié)果的精度。
(ii)由于可使用所希望(z/2bit)的乘法器,故例如在可高速執(zhí)行z/2bit積和運(yùn)算的信息處理器中,可實(shí)現(xiàn)高速化。
(iii)通過調(diào)節(jié)確保的位字段的bit數(shù),可確保與應(yīng)用程序一致的精度。
根據(jù)第二、第五方面的發(fā)明,具有與第一、第四方面的發(fā)明的效果(i)、(ii)相同的效果,另外,通過動(dòng)態(tài)地改變確保的bit數(shù),可盡量確保容許bit數(shù)的精度,因此,與第一、第四方面相比,可改善乘法器的運(yùn)算結(jié)果精度。
根據(jù)第三、第六方面的發(fā)明,具有與第一、第四的效果(i)、(ii)相同的效果,另外,由于按每個(gè)計(jì)算單位一并管理移位信息,故與第二、第五方面的發(fā)明相比,可減少存儲(chǔ)器容量。
圖1是表示本發(fā)明實(shí)施例1的運(yùn)算裝置的說明圖;圖2是表示將現(xiàn)有的MP3文件譯碼的處理的流程的圖;圖3是表示現(xiàn)有的專利文獻(xiàn)1中記載的舍入運(yùn)算方法的圖;圖4是表示圖1(2)的(a)、(b)的情況下的舍入運(yùn)算方法的說明圖;圖5是表示含有圖1的舍入運(yùn)算方法的乘法處理的流程圖;圖6是將本發(fā)明實(shí)施例和現(xiàn)有進(jìn)行運(yùn)算精度比較的圖;
圖7是表示本發(fā)明實(shí)施例2的運(yùn)算裝置的處理內(nèi)容的圖;圖8是表示含有圖7的舍入運(yùn)算方法的乘法處理的流程圖;圖9是表示本發(fā)明實(shí)施例3的運(yùn)算裝置的處理內(nèi)容的圖;圖10是表示含有圖9的舍入運(yùn)算方法的乘法處理的流程圖。
具體實(shí)施例方式
在固定小數(shù)點(diǎn)運(yùn)算的舍入運(yùn)算方法中,判斷是否使用由zbit(其中,z≥2)構(gòu)成的輸入數(shù)據(jù)中的上位nbit(其中,z>n≥2)的特定區(qū)域,如不使用上述特定區(qū)域,則舍掉上述輸入數(shù)據(jù)中的上述上位nbit和下位(z/2-n)bit,舍入為z/2bit值,若使用上述特定區(qū)域,則舍掉上述輸入數(shù)據(jù)中的下位z/2bit,舍入為z/2bit。
實(shí)施例1(實(shí)施例1的構(gòu)成)圖1(1)、(2)是表示本發(fā)明實(shí)施例1的運(yùn)算裝置的說明圖,同圖(A)是概略構(gòu)成圖,同圖(B)是表示處理內(nèi)容的圖。
該運(yùn)算裝置例如是用于MP3的譯碼應(yīng)用程序中的進(jìn)行固定小數(shù)點(diǎn)運(yùn)算的乘算的裝置,其具有輸入由多個(gè)(K)zbit(例如32bit)構(gòu)成的輸入數(shù)據(jù)IN1~I(xiàn)NK集合的舍入處理單元(例如舍入處理部)10。舍入處理部10具有根據(jù)各32bit的輸入數(shù)據(jù)IN1~I(xiàn)NK中的上位nbit(固定值)的特定區(qū)域A的使用狀態(tài),選擇確定的位字段C,并舍入為z/2(例如16bit)的功能。
即,舍入處理部10具有如下功能,對(duì)各輸入數(shù)據(jù)IN1~I(xiàn)NK判定是否使用上位nbit的特定區(qū)域A,若未使用特定區(qū)域A(圖1(2)的(a)的情況),則舍掉該上位nbit的特定區(qū)域A和剩下的(32-n)bit的非特定區(qū)域B中的下位(z/2-n=16-n)bit,選擇確保的位字段C,舍入為16bit值,若使用特定區(qū)域A(圖1(2)的(b)的情況),則舍入非特定區(qū)域B中的下位16bit,選擇確保的位字段C,舍入為16bit值。
在這樣的舍入處理部10上連接有存儲(chǔ)單元(例如存儲(chǔ)器)20及z/2bit(例如18bit)的乘法器30,進(jìn)而在該存儲(chǔ)器20及乘法器30上連接有位數(shù)調(diào)整單元(例如,位數(shù)調(diào)整部)40。
存儲(chǔ)器20具有用于將引入舍入時(shí)舍去的各bit數(shù)信息(即bit寬度信息)作為移位信息SHIFT保存的多個(gè)(K)存儲(chǔ)器區(qū)域21-1~21-K。18bit的乘法器30是從舍入的多個(gè)16bit數(shù)據(jù)D10-1~D10-K中分別乘上作為乘數(shù)的16bit數(shù)據(jù)和作為被乘數(shù)的16bit數(shù)據(jù),將各32bit的乘法結(jié)果D30向位數(shù)調(diào)整部40輸出的電路。位數(shù)調(diào)整部40基于保存于各存儲(chǔ)器區(qū)域21-1~21-K的各移位信息SHIFT分別移位各乘法結(jié)果D30,調(diào)整位數(shù)。
舍入處理部10及位數(shù)調(diào)整部40由算術(shù)邏輯單元(下稱“ALU”)或移位器等構(gòu)成。
(含有實(shí)施例1的舍入運(yùn)算方法的乘法處理)圖4是說明圖1(2)的(a)、(b)的情況的舍入運(yùn)算方法的說明圖。圖5是表示含有圖1的舍入運(yùn)算方法的乘法處理的流程圖。
相對(duì)于32bit的輸入數(shù)據(jù)IN1~I(xiàn)NK的集合的乘法處理根據(jù)圖5的流程圖如下執(zhí)行。
開始乘法處理(步驟S20),當(dāng)將32bit的輸入數(shù)據(jù)IN1~I(xiàn)NK的集合輸入舍入處理部10(步驟S21)時(shí),在該舍入處理部10中,判定某輸入數(shù)據(jù)(例如IN1、IN2)是否使用上位nbit(例如3bit)的特定區(qū)域A(步驟S22),基于該判定結(jié)果進(jìn)行舍入處理(步驟S23-1、S23-2)。
例如圖4(a)的情況,若輸入數(shù)據(jù)IN1不使用上位nbit(=3bit)的特定區(qū)域A(“000”),則舍去該上位nbit(=3bit)和非特定區(qū)域B的下位(16-n)bit(=13bit)(即從MSB插入“0”,只有(16-n)=13bit向右移位),選擇確保的位字段C,舍入為16bit值(步驟S23-1)。
與此相對(duì),如圖4(b)的情況,若輸入數(shù)據(jù)IN2使用上位nbit(=3bit)的特定區(qū)域A(“101”),則舍去非特定區(qū)域B的下位16bit(即從MSB插入“0”,只有16bit向右移位),選擇確保的位字段C,舍入為16bit值(步驟S23-2)。
圖4(a)的舍入處理結(jié)果是,將舍去的非特定區(qū)域B的下位(16-n)=13bit的移位信息SHIFT存儲(chǔ)于存儲(chǔ)器區(qū)域21-1(步驟S24-1)。或,圖4(b)的舍入處理結(jié)果是,將舍去的非特定區(qū)域B的下位16bit的移位信息SHIFT存儲(chǔ)于存儲(chǔ)器區(qū)域21-2(步驟S24-2)。
對(duì)于其它輸入數(shù)據(jù)IN3~I(xiàn)NK也同樣進(jìn)行舍入處理。由于存儲(chǔ)器區(qū)域21-1~21-K分別準(zhǔn)備多個(gè)輸入數(shù)據(jù)IN1~I(xiàn)NK,故對(duì)應(yīng)各輸入數(shù)據(jù)IN1~I(xiàn)NK的移位信息SHIFT分別存儲(chǔ)于各存儲(chǔ)器區(qū)域20-1~20-K。
舍入的各16bit數(shù)據(jù)D10-1~D10-K用乘法器30相乘(步驟S25),將32bit的乘法結(jié)果D30送向位數(shù)調(diào)整部40。在位數(shù)調(diào)整部40中,基于分別存儲(chǔ)于存儲(chǔ)器區(qū)域21-1~21-k的移位信息SHIFT使乘法結(jié)果D30向左移位來調(diào)整位數(shù)(步驟S26),輸出輸出數(shù)據(jù)OUT,結(jié)束處理(步驟S27)。
(實(shí)施例1的效果)根據(jù)本實(shí)施例1,具有如下(1)~(4)這樣的效果。
(1)由于研究了舍入處理,故可確保運(yùn)算結(jié)果的精度。
(2)由于可使用16bit乘法器30,故例如在可高速執(zhí)行16bti積和運(yùn)算的信息處理器中,能夠高速化。
(3)通過調(diào)整確保的位字段C的bit數(shù)(nbit),可確保與應(yīng)用程序一致的精確。
(4)圖6(1)、(2)是將本發(fā)明實(shí)施例和目前進(jìn)行運(yùn)算精度比較的圖,同圖(1)是表示比較的模擬結(jié)果,同圖(2)是表示同圖(1)的運(yùn)算精度的求出方法的圖。
如圖6(2)損失,在求出運(yùn)算精度(即舍入誤差)時(shí),將多個(gè)(例如128個(gè))輸入數(shù)據(jù)IN1~I(xiàn)NK輸入運(yùn)算裝置,求出運(yùn)算結(jié)果的真值50和舍入的值51的誤差52,只要求出該誤差52的平均值即可。誤差52的平均值可用下記的RMS(時(shí)效值VRMS)表示。
數(shù)1VRMS=1T·∫Δt=TV(t)2·dt]]>其中,t輸入數(shù)據(jù)指標(biāo)v(t)誤差T輸入數(shù)據(jù)數(shù)圖6(1)的模擬結(jié)果中,將確保了上位16bit時(shí)(現(xiàn)有的曲線53)的精度(RMS現(xiàn)有的直線54)和使用了本發(fā)明實(shí)施例1時(shí)(實(shí)施例1的曲線55)的精度(RMS實(shí)施例的直線56)進(jìn)行了比較。作為之一例,將128個(gè)樣本的32bit輸入值分別舍入為16bit,表示與32bit輸入值的誤差。根據(jù)該模擬結(jié)果,從RMS現(xiàn)有的直線54和RMS實(shí)施例的直線56可知,與現(xiàn)有的運(yùn)算精度相比,本實(shí)施例1的運(yùn)算精度誤差小,且精度高。
(實(shí)施例2)圖7是表示本發(fā)明實(shí)施例2的運(yùn)算裝置的處理內(nèi)容的圖,表示實(shí)施例1的圖1(2)中的要素和共通的要素使用共通的符號(hào)。
本實(shí)施例2的運(yùn)算裝置由處理內(nèi)容與實(shí)施例1不同的舍入處理單元(例如舍入處理部)10-1、與實(shí)施例1相同的存儲(chǔ)單元(例如存儲(chǔ)器)20、z/2bit(例如18bit)的乘法器30、位數(shù)調(diào)整單元(例如位數(shù)調(diào)整部)40構(gòu)成。
舍入處理部10-1具有根據(jù)各32bit輸入數(shù)據(jù)IN1~I(xiàn)NK中的上位z/2bit的特定區(qū)域A的使用狀態(tài)將確保的位字段C動(dòng)態(tài)地變化為個(gè)別數(shù)據(jù),引入舍入為z/2(例如16bit)的功能。即,該舍入處理部10-1具有如下功能,對(duì)各輸入數(shù)據(jù)IN1~I(xiàn)NK判定上位nbit的特定區(qū)域A使用了多少bit,若使用xbit(0≤x≤z/2),則舍去特定區(qū)域的上位(z/2-x)bit和非特定區(qū)域B的下位xbit,選擇確保的位字段C,將其舍入為16bit值。
與實(shí)施例1相同,引入舍入時(shí)舍去的比特寬度信息作為移位信息SHIFT被保存于存儲(chǔ)器20內(nèi)準(zhǔn)備的數(shù)據(jù)的個(gè)數(shù)量的存儲(chǔ)器區(qū)域21-1~21-K,用乘法器30相乘的乘法結(jié)果的位數(shù)成為通過位數(shù)調(diào)整部40移位來進(jìn)行調(diào)整而使用的構(gòu)成。
(含有實(shí)施例2的舍入運(yùn)算方法的乘法處理)圖8是表示含有圖7的舍入運(yùn)算方法的乘法處理的流程圖,與表示實(shí)施例1的圖5中的要素相同的要素使用同一符號(hào)。
相對(duì)于32bit的輸入數(shù)據(jù)IN1~I(xiàn)NK的集合的乘法處理根據(jù)圖8的流程圖如下執(zhí)行。
開始乘法處理(步驟S20),當(dāng)將32bit的輸入數(shù)據(jù)IN1~I(xiàn)NK的集合輸入舍入處理部10(步驟S21)時(shí),在該舍入處理部10-1中,判定某輸入數(shù)據(jù)(例如IN1、IN2)使用上位nbit(例如3bit)的特定區(qū)域A的多少bit(xbit)(步驟S32)。若輸入數(shù)據(jù)(例如IN1、IN2)使用特定區(qū)域A的xbit(0≤x≤16),則舍去特定區(qū)域A的上位(16-x)bit和非特定區(qū)域B的下位xbit,選擇確保的位字段C,舍入為16bit值(步驟S33)。
例如,在輸入數(shù)據(jù)IN1使用特定區(qū)域A中的x(=3)bit時(shí),將該特定區(qū)域A的上位(16-x=13)bit和非特定區(qū)域B的下位x(=3)bit舍去,舍入為16bit值?;蛟谳斎霐?shù)據(jù)IN2使用特定區(qū)域A中的x(=5)bit時(shí),將該特定區(qū)域A的上位(16-x=11)bit和非特定區(qū)域B的下位x(=5)bit舍去,舍入為16bit值。
舍入處理的結(jié)果是,將舍去的非特定區(qū)域B的下位xbit的移位信息SHIFT存儲(chǔ)于存儲(chǔ)器區(qū)域21-1、21-2(步驟S34)。對(duì)于其它輸入數(shù)據(jù)IN3~I(xiàn)NK也執(zhí)行同樣的舍入處理。與實(shí)施例1相同,由于存儲(chǔ)器區(qū)域21-1~21-K準(zhǔn)備多個(gè)輸入數(shù)據(jù)IN1~I(xiàn)NK,因此,對(duì)應(yīng)于各輸入數(shù)據(jù)IN1~I(xiàn)NK的移位信息SHIFT被分別存儲(chǔ)于各存儲(chǔ)器區(qū)域21-1~21-K。
舍入的各16bit的數(shù)據(jù)D10-1~D10-K與實(shí)施例1相同,用乘法器30相乘(步驟S25),將32bit的乘法結(jié)果D30送向位數(shù)調(diào)整部40。在位數(shù)調(diào)整部40中,基于分別存儲(chǔ)于存儲(chǔ)器區(qū)域20-1~20-K的移位信息SHIFT使乘法結(jié)果D30向左移位,對(duì)位數(shù)進(jìn)行調(diào)整(步驟S26),結(jié)束處理(步驟S27)。
(實(shí)施例2的效果)根據(jù)本實(shí)施例2,具有與實(shí)施例1的效果(1)、(2)相同的效果,而且還具有如下(4)的效果。
(4)通過動(dòng)態(tài)地改變確保的bti數(shù),可確保容許bit數(shù)限度的精度,因此,與實(shí)施例1相比,可改善乘法器30的運(yùn)算結(jié)果精度。與此相關(guān),根據(jù)與圖6相同的模擬結(jié)果,與實(shí)施例1相比,更可提高精度。
(實(shí)施例3的構(gòu)成)圖9是表示本發(fā)明實(shí)施例3的運(yùn)算裝置的處理內(nèi)容的圖,與表示實(shí)施例1的圖1(2)中的要素共通的要素使用共通的符號(hào)。
本實(shí)施例3的運(yùn)算裝置由處理內(nèi)容與實(shí)施例1不同的舍入處理單元(例如舍入處理部)10-2、存儲(chǔ)容量實(shí)施例1不同的存儲(chǔ)單元(例如存儲(chǔ)器)20-1、與實(shí)施例1相同的z/2bit(例如18bit)的乘法器30、位數(shù)調(diào)整單元(例如,位數(shù)調(diào)整部)40構(gòu)成。
舍入處理部10-2具有根據(jù)各zbit(例如32bit)的輸入數(shù)據(jù)IN1~I(xiàn)NK中的上位z/2bit(例如16bit)的特定區(qū)域A的使用狀態(tài)將確保的位字段C動(dòng)態(tài)地變化,引入舍入為z/2(例如16bit)的功能。即,該舍入處理部10-2具有如下功能,檢測(cè)多個(gè)輸入數(shù)據(jù)IN1~I(xiàn)NK中各上位nbit(例如16bit)的特定區(qū)域A使用多少比特,求出使用的比特?cái)?shù)的最大值x(其中,0≤x≤z/2),舍去輸入數(shù)據(jù)IN1~I(xiàn)NK中的上位(z/2-x)bit和下位xbit,分別舍入為z/2bit。
引入舍入時(shí)舍去的比特寬度信息作為移位信息SHIFT被保存于存儲(chǔ)器20-1內(nèi)的存儲(chǔ)器區(qū)域21-1。移位信息SHIFT對(duì)數(shù)據(jù)的每個(gè)計(jì)算單位(數(shù)據(jù)集合)保持,用乘法器30相乘的乘法結(jié)果的位數(shù)成為通過位數(shù)調(diào)整部40移位來進(jìn)行調(diào)整而使用的構(gòu)成。
(含有實(shí)施例3的舍入運(yùn)算方法的乘法處理)圖10是表示含有圖9的舍入運(yùn)算方法的乘法處理的流程圖,與表示實(shí)施例1的圖5中的要素相同的要素使用同一的符號(hào)。
相對(duì)于32bit的輸入數(shù)據(jù)IN1~I(xiàn)NK的集合的乘法處理根據(jù)圖10的流程圖如下執(zhí)行。
開始乘法處理(步驟S20),當(dāng)將32bit的輸入數(shù)據(jù)IN1~I(xiàn)NK的集合輸入舍入處理部10-2(步驟S21)時(shí),在該舍入處理部10-2中,檢測(cè)數(shù)據(jù)集合zbit(例如32bit)長(zhǎng)度的各輸入數(shù)據(jù)IN1~I(xiàn)NK使用上位z/2bit(例如16bit)的特定區(qū)域A的多少bit(xbit)(步驟S42)。若使用的bit數(shù)的最大值為xbit(0≤x≤16),則舍去各輸入數(shù)據(jù)IN1~I(xiàn)NK的上位(16-x)bit和下位xbit,選擇確保的位字段C,舍入為16bit值(步驟S43)。
例如,在輸入數(shù)據(jù)IN1使用特定區(qū)域A中的x(=4)bit,輸入數(shù)據(jù)IN2使用5bit,輸入數(shù)據(jù)INK使用3bit時(shí),將使用的bit數(shù)的最大值x設(shè)為5bit。因此,將各輸入數(shù)據(jù)IN1~I(xiàn)NK的上位(16-x=11)bit和下位x(=5)bit舍去,舍入為16bit值。
舍入處理的結(jié)果是,將在各輸入數(shù)據(jù)IN1~I(xiàn)NK中舍去的非特定區(qū)域B的下位x(=5)bit的移位信息SHIFT存儲(chǔ)于存儲(chǔ)器區(qū)域21-1(步驟S44)。舍去的bit數(shù)(=5)在數(shù)據(jù)集合的各輸入數(shù)據(jù)IN1~I(xiàn)NK中是相同的。因此,存儲(chǔ)器區(qū)域21-1準(zhǔn)備一個(gè),共用于各數(shù)據(jù)。
舍入的各16bit的數(shù)據(jù)D10-1~D10-K與實(shí)施例1相同,用乘法器30相乘(步驟S25),將32bit的乘法結(jié)果D30送向位數(shù)調(diào)整部40。在位數(shù)調(diào)整部40中,基于存儲(chǔ)于存儲(chǔ)器區(qū)域20-1的移位信息SHIFT使乘法結(jié)果D30向左移位,對(duì)位數(shù)進(jìn)行調(diào)整(步驟S26),結(jié)束處理(步驟S27)。
(實(shí)施例3的效果)根據(jù)本實(shí)施例3,具有與實(shí)施例1的效果(1)、(2)相同的效果,還具有如下(5)的效果。
(5)由于對(duì)每個(gè)計(jì)算單位一并管理移位信息SHIFT,故與實(shí)施例2比較,可減少存儲(chǔ)器容量。與此相關(guān),根據(jù)與圖6相同的模擬結(jié)果,可確保實(shí)施例1和實(shí)施例2的中間精度。
(變形例)本發(fā)明不限于實(shí)施例1~3,可進(jìn)行各種利用方式及變形。該利用方式及變形例如如下(I)、(II)。
(I)構(gòu)成運(yùn)算裝置的舍入處理部10、10-1、10-2、乘法器30、及位數(shù)調(diào)整部40的bit數(shù)是任意的,另外,也可以將這些運(yùn)算裝置變更為圖示以外的其它構(gòu)成。
(II)在實(shí)施例1~3中,以MP3的譯碼進(jìn)行了舉例說明,但本發(fā)明在需要為了使用乘法器30的運(yùn)算的高速化等而舍入數(shù)據(jù)的各種應(yīng)用中,可確保精度。
權(quán)利要求
1.一種舍入運(yùn)算方法,其特征在于,判定是否使用了由z比特構(gòu)成的輸入數(shù)據(jù)中的上位n比特的特定區(qū)域,其中,z≥2,z>n≥2;在所述判定結(jié)果中,若未使用所述特定區(qū)域,則將所述輸入數(shù)據(jù)中的所述上位n比特和下位z/2-n比特舍去,舍入為z/2比特值;在所述判定結(jié)果中,若使用所述特定區(qū)域,則將所述輸入數(shù)據(jù)中的下位z/2比特舍去,舍入為z/2比特。
2.一種舍入運(yùn)算方法,其特征在于,判定是否使用了由z比特構(gòu)成的輸入數(shù)據(jù)中的上位z/2比特的特定區(qū)域中的多少比特,其中,z≥2;在所述輸入數(shù)據(jù)中,若使用上述特定區(qū)域的x比特,則將所述輸入數(shù)據(jù)中的上位z/2-x比特和下位x比特舍去,舍入為z/2比特,其中,0≤x≤z/2。
3.一種舍入運(yùn)算方法,其特征在于,在分別由z比特構(gòu)成的多個(gè)輸入數(shù)據(jù)中,檢測(cè)是否使用了所述各輸入數(shù)據(jù)中的上位z/2比特的特定區(qū)域的多少比特,求出使用的比特?cái)?shù)的最大值x,其中,z≥2,0≤x≤z/2;將所述各輸入數(shù)據(jù)的上位z/2-x比特和下位x比特舍去,分別舍入為z/2比特。
4.一種運(yùn)算裝置,其特征在于,具有舍入處理單元,其分別輸入由z比特構(gòu)成的乘數(shù)及被乘數(shù),判定是否分別使用了所述乘數(shù)及所述被乘數(shù)中的各上位n比特的特定區(qū)域,若未使用所述特定區(qū)域,則將所述乘數(shù)及所述被乘數(shù)的所述上位n比特和下位z/2-n比特舍去,并分別舍入為z/2比特值,若使用所述特定區(qū)域,則將所述乘數(shù)及所述被乘數(shù)的下位z/2比特舍去,并分別舍入為z/2比特,其中,z≥2,z>n≥2;存儲(chǔ)單元,其分別存儲(chǔ)所述舍去的各比特?cái)?shù)的信息;z/2比特乘法器,其將由所述舍入處理單元舍入的所述乘數(shù)和所述被乘數(shù)相乘,輸出乘法結(jié)果;位數(shù)調(diào)整單元,其基于所述存儲(chǔ)單元中存儲(chǔ)的所述比特?cái)?shù)的信息,將所述乘法結(jié)果移位來調(diào)整位數(shù)。
5.一種運(yùn)算裝置,其特征在于,具有舍入處理單元,其分別輸入由z比特構(gòu)成的乘數(shù)及被乘數(shù),判定是否使用了所述乘數(shù)及所述被乘數(shù)中的各上位n比特的特定區(qū)域的多少比特,若使用所述特定區(qū)域的x比特,則將所述乘數(shù)及所述被乘數(shù)的所述上位z/2-x比特和下位x比特舍去,分別舍入為z/2比特,其中,z≥2,0≤x≤z/2;存儲(chǔ)單元,其分別存儲(chǔ)所述舍去的各比特?cái)?shù)的信息;z/2比特乘法器,其將由所述舍入處理單元舍入的所述乘數(shù)和所述被乘數(shù)相乘,輸出乘法結(jié)果;位數(shù)調(diào)整單元,其基于所述存儲(chǔ)單元中存儲(chǔ)的所述比特?cái)?shù)的信息,將所述乘法結(jié)果移位來調(diào)整位數(shù)。
6.一種運(yùn)算裝置,其特征在于,具有舍入處理單元,其分別輸入由z比特構(gòu)成的乘數(shù)及被乘數(shù),檢測(cè)是否使用了所述多個(gè)乘數(shù)及被乘數(shù)中的各上位z/2比特的特定區(qū)域的多少比特,求出使用的比特?cái)?shù)的最大值x,將所述乘數(shù)及所述被乘數(shù)的上位z/2-x比特和下xn比特舍去,分別舍入為z/2比特,其中,z≥2,0≤x≤z/2;存儲(chǔ)單元,其分別存儲(chǔ)所述舍去的比特?cái)?shù)的信息;z/2比特乘法器,其將由所述舍入處理單元舍入的所述乘數(shù)和所述被乘數(shù)相乘,輸出乘法結(jié)果;位數(shù)調(diào)整單元,其基于所述存儲(chǔ)單元中存儲(chǔ)的所述比特?cái)?shù)的信息,將所述乘法結(jié)果移位來調(diào)整位數(shù)。
全文摘要
本發(fā)明涉及舍入運(yùn)算方法及其運(yùn)算裝置,使用高速的低精度乘法器,使運(yùn)算處理高速化,且確保運(yùn)算的輸出精度。運(yùn)算裝置具有輸入由多個(gè)(K)z比特構(gòu)成的輸入數(shù)據(jù)IN1~I(xiàn)NK的集合的舍入處理部(10)。舍入處理部(10)根據(jù)各32比特的輸入數(shù)據(jù)IN1~I(xiàn)NK中的上位z/2比特的特定區(qū)域A的使用狀態(tài),選擇確保的位字段C,舍入為z/2。舍入處理結(jié)果是,舍去的非特定區(qū)域B的下位(16-n)比特的移位信息SHIFT被存儲(chǔ)于存儲(chǔ)器區(qū)域(21-1)中。舍入后的各16比特?cái)?shù)據(jù)D10-1~D10-K用乘法器(30)相乘。在位數(shù)調(diào)整部(40)中,基于分別存儲(chǔ)于存儲(chǔ)器區(qū)域(21-1~21-k)中的移位信息SHIFT,使乘法結(jié)果D30向左移位來調(diào)整位數(shù)。
文檔編號(hào)G10L19/00GK101051261SQ20071008818
公開日2007年10月10日 申請(qǐng)日期2007年3月20日 優(yōu)先權(quán)日2006年4月7日
發(fā)明者內(nèi)田航 申請(qǐng)人:沖電氣工業(yè)株式會(huì)社