專利名稱:運(yùn)算裝置及運(yùn)算方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種能高速執(zhí)行多用于信號(hào)處理的乘法、乘加運(yùn)算的運(yùn)算裝置及運(yùn)算方法。
到目前為止,多媒體數(shù)據(jù)是用微處理器和專用LSI的組合來處理的??墒牵捎谧罱鼛啄晡⑻幚砥鞯男阅苋〉昧梭@人的提高,僅用微處理器也能夠執(zhí)行某種多媒體數(shù)據(jù)處理。寄存器分割式運(yùn)算的應(yīng)用為所述性能提高的原因之一。還有,在圖像處理、音頻處理等方面,經(jīng)常采用將數(shù)組元素作輸入,以求一個(gè)累加數(shù)據(jù)的運(yùn)算方法。
圖12示出以往的用被分割的寄存器來執(zhí)行乘加運(yùn)算的運(yùn)算裝置的結(jié)構(gòu)圖。
同圖中,寄存器105將32位累加數(shù)據(jù)ZU存儲(chǔ)在高位32位中,將32位累加數(shù)據(jù)ZL存儲(chǔ)在低位32位中。乘法器101將32位輸入數(shù)據(jù)X的高位16位(以下,稱此為“XU”)和32位輸入數(shù)據(jù)Y的高位16位(以下,稱此為“YU”)作輸入來執(zhí)行乘法,并輸出32位的乘積。乘法器102將輸入數(shù)據(jù)X的低位16位(以下,稱此為“XL”)和輸入數(shù)據(jù)Y的低位16位(以下,稱此為“YL”)作輸入來執(zhí)行乘法,并輸出32位的乘積。加法器103將乘法器101的輸出數(shù)據(jù)和存儲(chǔ)在寄存器105的高位32位中的數(shù)據(jù)ZU加起來,并輸出32位的和數(shù)。加法器104將乘法器102的輸出數(shù)據(jù)和存儲(chǔ)在寄存器105的低位32位中的數(shù)據(jù)ZL加起來,并輸出32位的和數(shù)。加法器103的輸出數(shù)據(jù)被存儲(chǔ)在寄存器105的高位32位中,加法器104的輸出數(shù)據(jù)被存儲(chǔ)在寄存器105的低位32位中。
按上述所構(gòu)成的運(yùn)算裝置中,乘法器101執(zhí)行乘法XU·YU,加法器103將乘法器101的乘法結(jié)果和存儲(chǔ)在寄存器105的高位32位中的ZU加在一起,寄存器105將加法器103的輸出,即乘加運(yùn)算XU·YU+ZU的結(jié)果,存儲(chǔ)在高位32位中。
同樣地,乘法器102執(zhí)行乘法XL·YL,加法器104將乘法器102的乘法結(jié)果和存儲(chǔ)在寄存器105的低位32位中的ZL加在一起,寄存器105將加法器104的輸出,即乘加運(yùn)算XL·YL+ZL的結(jié)果,存儲(chǔ)在低位32位中。
在把圖13所示的數(shù)組元素,其中i意指第i次數(shù)據(jù)輸入,i從0變化到N-1,作為輸入數(shù)據(jù)X、Y輸給運(yùn)算裝置來執(zhí)行N次乘加運(yùn)算時(shí),運(yùn)算結(jié)果(x0·y0+x2·y2+…+x2n-2·y2n-2)被存儲(chǔ)在寄存器105的高位32位中,運(yùn)算結(jié)果(x1·y1+x3·y3+…+x2n-1·y2n-1)被存儲(chǔ)在寄存器105的低位32位中。
然而,在用上述以往的運(yùn)算裝置來求(x0·y0+x1·y1+x2·y2+…+x2n-2·y2n-2+x2n-1·y2n-1)的情況下,一定要在執(zhí)行N次乘加運(yùn)算之后,再將存儲(chǔ)在寄存器105的高位32位中的運(yùn)算結(jié)果(x0·y0+x2·y2+…+x2n-2·y2n-2)和存儲(chǔ)在寄存器105的低位32位中的運(yùn)算結(jié)果(x1·y1+x3·y3+…+x2n-1·y2n-1)加在一起。
在該加法中,要僅把存儲(chǔ)在寄存器105中的高位32位數(shù)據(jù)傳送到另一寄存器中;要僅把存儲(chǔ)在寄存器105中的低位32位數(shù)據(jù)傳送到其他(或者,所述另一)寄存器中,從而必須把所述被傳送的各數(shù)據(jù)加起來。
如上所述,以往的運(yùn)算裝置中存在有這樣的問題在要從被分割的多個(gè)輸入數(shù)據(jù)來求一個(gè)累加運(yùn)算結(jié)果的情況下,除了乘加運(yùn)算以外,還要進(jìn)行數(shù)據(jù)傳送、數(shù)據(jù)加算等處理,處理周期不得已變大。
本發(fā)明的目的在于提供一種在要從被分割的多個(gè)輸入數(shù)據(jù)求出一個(gè)累加運(yùn)算結(jié)果的情況下,也不用進(jìn)行數(shù)據(jù)傳送、數(shù)據(jù)加法運(yùn)算的運(yùn)算裝置。
為了達(dá)到上述目的,本發(fā)明的第1方面所涉及的運(yùn)算裝置為一可將分別由n個(gè)互相獨(dú)立的M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位數(shù)據(jù)X和數(shù)據(jù)Y作輸入,并輸出一個(gè)獨(dú)立的數(shù)據(jù)Z的運(yùn)算裝置,其中包括對(duì)所述數(shù)據(jù)X和所述數(shù)據(jù)Y中位于同一數(shù)字位置的所述部分?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算的第1到第n個(gè)乘法器;可對(duì)所述第1到第n個(gè)乘法器的輸出分別進(jìn)行移位的第1到第n個(gè)移位器;和將所述第1到第n個(gè)移位器的輸出都加起來的加法器。所述第1到第n個(gè)移位器進(jìn)行以下的控制在要求出所述第1到第n個(gè)乘法器的輸出之總和來作所述數(shù)據(jù)Z的情況下,所述移位器不進(jìn)行移位;在要分別求出所述第1到第n個(gè)乘法器的輸出來作所述數(shù)據(jù)Z的情況下,所述移位器將所述第1到第n個(gè)乘法器的輸出位移到互相不重疊的數(shù)字位置。
按照上述結(jié)構(gòu),能夠進(jìn)行步驟數(shù)得以減少的乘加運(yùn)算。此外,通過轉(zhuǎn)換移位器的控制方式,也能夠并列地進(jìn)行多個(gè)乘法。
為達(dá)到上述目的,本發(fā)明的第2方面所涉及的運(yùn)算裝置為一可將分別由n個(gè)互相獨(dú)立的M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位的數(shù)據(jù)X和數(shù)據(jù)Y作輸入,并輸出一個(gè)獨(dú)立的數(shù)據(jù)Z的運(yùn)算裝置,其中包括可存儲(chǔ)所述數(shù)據(jù)Z的寄存器;對(duì)所述數(shù)據(jù)X和所述數(shù)據(jù)Y中位于同一數(shù)字位置的所述部分?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算的第1到第n個(gè)乘法器;將所述第1到第n個(gè)乘法器和所述寄存器的輸出都加起來并將該結(jié)果輸入所述寄存器的加法器。在該運(yùn)算裝置中,將多次循環(huán)輸入的所述數(shù)據(jù)X和所述數(shù)據(jù)Y相乘后累加起來。
按照上述結(jié)構(gòu),即使多輸入加法器的輸入數(shù)增加,也可在某一程度抑制電路規(guī)模的增大,所以能夠在抑制電路規(guī)模的增大的情況下實(shí)現(xiàn)乘加運(yùn)算。
為達(dá)到上述目的,本發(fā)明的第3方面所涉及的運(yùn)算裝置為一可將分別由n個(gè)互相獨(dú)立的M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位的數(shù)據(jù)X和數(shù)據(jù)Y作輸入,并輸出一個(gè)獨(dú)立的數(shù)據(jù)Z的運(yùn)算裝置,其中包括可存儲(chǔ)所述數(shù)據(jù)Z的寄存器;對(duì)所述數(shù)據(jù)X和所述數(shù)據(jù)Y中位于同一數(shù)字位置的所述部分?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算的第1到第n個(gè)乘法器;可對(duì)所述第1到第n個(gè)乘法器的輸出分別進(jìn)行移位的第1到第n個(gè)移位器;將所述第1到第n個(gè)移位器和所述寄存器的輸出都加起來并將該結(jié)果輸入所述寄存器的加法器,在要用多次循環(huán)輸入的所述數(shù)據(jù)X和數(shù)據(jù)Y來進(jìn)行乘積累加運(yùn)算的情況下,所述第1到第n個(gè)移位器進(jìn)行以下的控制在要求出所述第1到第n個(gè)乘法器的乘積的累加和的總和來作所述數(shù)據(jù)Z時(shí),所述移位器不進(jìn)行移位;在要分別求出所述第1到第n個(gè)乘法器的乘積的累加和來作所述數(shù)據(jù)Z時(shí),所述移位器將所述第1到第n個(gè)乘法器的輸出位移到互相不重疊的數(shù)字位置。
按照上述結(jié)構(gòu),能夠?qū)崿F(xiàn)步驟數(shù)得以減少的乘積累加運(yùn)算。此外,通過轉(zhuǎn)換移位器的控制方式,能夠并列地進(jìn)行多個(gè)乘積累加運(yùn)算。
為達(dá)到上述目的,本發(fā)明的第4方面所涉及的運(yùn)算裝置為一可將分別由n個(gè)M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位數(shù)據(jù)X和數(shù)據(jù)Y作輸入,并輸出數(shù)據(jù)Z的運(yùn)算裝置,其中包括可存儲(chǔ)所述數(shù)據(jù)Z的寄存器;從構(gòu)成所述數(shù)據(jù)Y的n個(gè)部分?jǐn)?shù)據(jù)中選擇一個(gè)的選擇器;從構(gòu)成所述數(shù)據(jù)X的n個(gè)部分?jǐn)?shù)據(jù)中取出互相不重疊的一個(gè),并乘以所述選擇器的輸出的第1到第n個(gè)乘法器;可對(duì)所述第1到第n個(gè)乘法器的輸出分別進(jìn)行移位的第1到第n個(gè)移位器;將所述第1到第n個(gè)移位器和所述寄存器的輸出都加起來并將該結(jié)果輸入所述寄存器的加法器。在第p次循環(huán)中,所述選擇器選擇從低位數(shù)起第p個(gè)所述部分?jǐn)?shù)據(jù),從低位數(shù)起第q個(gè)移位器進(jìn)行(p+q-2)M位的移位控制。
按照上述結(jié)構(gòu),當(dāng)被乘數(shù)的位數(shù)等于或者多于運(yùn)算器所具備的乘法器的輸入位數(shù)時(shí),也可以進(jìn)行乘法運(yùn)算。
為達(dá)到上述目的,本發(fā)明的第5方面所涉及的運(yùn)算裝置為一可將2M位數(shù)據(jù)X和數(shù)據(jù)Y作輸入,并輸出4M位數(shù)據(jù)Z的運(yùn)算裝置,其中包括第1寄存器,存儲(chǔ)在加法運(yùn)算中所產(chǎn)生的每一位的進(jìn)位C;第2寄存器,存儲(chǔ)在加法運(yùn)算中所產(chǎn)生的每一位的和S;第3寄存器,存儲(chǔ)所述數(shù)據(jù)Z;第1譯碼器,將所述數(shù)據(jù)X的高位M位作輸入并進(jìn)行譯碼;第2譯碼器,將所述數(shù)據(jù)X的低位M位作輸入并進(jìn)行譯碼;第1、第2選擇器,選擇所述數(shù)據(jù)Y的高位M位和低位M位中之一;第1部分積發(fā)生器,將所述第1譯碼器的輸出數(shù)據(jù)及所述第1選擇器的輸出數(shù)據(jù)作輸入,來產(chǎn)生乘加運(yùn)算的部分積;第2部分積發(fā)生器,將所述第2譯碼器的輸出數(shù)據(jù)及所述第2選擇器的輸出數(shù)據(jù)作輸入,來產(chǎn)生乘加運(yùn)算的部分積;第1全加器,將由所述第1部分積發(fā)生器所產(chǎn)生的部分積加起來;第2全加器,將由所述第2部分積發(fā)生器所產(chǎn)生的部分積加起來;數(shù)據(jù)擴(kuò)充移位器,可將所述第1全加器和所述第2全加器的輸出數(shù)據(jù)作輸入,進(jìn)行數(shù)據(jù)擴(kuò)充及數(shù)據(jù)移位工作;行波進(jìn)位加法器,將上述第1、第2寄存器所存儲(chǔ)的上述每一位的進(jìn)位C和上述每一位的和S作輸入來進(jìn)行行波進(jìn)位加法運(yùn)算,并將該結(jié)果輸出到上述第3寄存器中;第3選擇器,選擇并輸出所述第3寄存器所存儲(chǔ)的數(shù)據(jù)和零數(shù)據(jù)中之一;第4選擇器,選擇并輸出所述行波進(jìn)位加法器的輸出數(shù)據(jù)和零數(shù)據(jù)中之一;第3全加器,將所述數(shù)據(jù)擴(kuò)充移位器的輸出數(shù)據(jù)、所述第4選擇器的輸出數(shù)據(jù)、所述第3選擇器的輸出數(shù)據(jù)作輸入來將其全部都加起來,并將每一位的進(jìn)位C和每一位的和S分別輸入所述第1寄存器和第2寄存器。
按照上述結(jié)構(gòu),能夠在電路規(guī)模得以減小的情況下進(jìn)行步驟數(shù)少的乘積累加運(yùn)算。此外,通過轉(zhuǎn)換移位器的控制方式,既可并列地進(jìn)行多個(gè)乘積累加運(yùn)算,又可在電路規(guī)模得以減小的情況下,對(duì)位數(shù)等于或者多于乘法器的輸入位數(shù)的被乘數(shù)進(jìn)行乘法運(yùn)算。
還有,本發(fā)明的第6方面所采取的運(yùn)算方法是將分別由n個(gè)互相獨(dú)立的M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位數(shù)據(jù)X和數(shù)據(jù)Y作輸入,來計(jì)算出一個(gè)獨(dú)立的數(shù)據(jù)Z的運(yùn)算方法,其中包括以下幾個(gè)步驟對(duì)所述數(shù)據(jù)X和所述數(shù)據(jù)Y中位于同一數(shù)字位置的所述部分?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算以求乘積的乘法步驟;對(duì)在所述乘法步驟中所求得的乘積,分別進(jìn)行移位的移位步驟;將在所述移位步驟中所求得的值進(jìn)行加法運(yùn)算以求和的加法步驟,在要求出所述乘法步驟中所求得的n個(gè)乘積的總和來作所述數(shù)據(jù)Z的情況下,在所述移位步驟中不進(jìn)行移位工作;在要分別求出所述乘法步驟中的n個(gè)乘積來作所述數(shù)據(jù)Z的情況下,在所述移位步驟中,將所述n個(gè)乘積位移到互相不重疊的數(shù)字位置。
按照第6方面的發(fā)明,能夠進(jìn)行步驟數(shù)得以減少的乘加運(yùn)算。
并且,本發(fā)明的第7方面所采取的運(yùn)算方法是將分別由n個(gè)互相獨(dú)立的M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位數(shù)據(jù)X和數(shù)據(jù)Y作輸入,來計(jì)算出一個(gè)獨(dú)立的數(shù)據(jù)Z的運(yùn)算方法,其中包括以下幾個(gè)步驟對(duì)所述數(shù)據(jù)X和所述數(shù)據(jù)Y中位于同一數(shù)字位置的所述部分?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算來求乘積的乘法步驟;將所述乘法步驟中所求得的n個(gè)乘積進(jìn)行加法運(yùn)算來求和的加法步驟;多次循環(huán)輸入所述數(shù)據(jù)X和所述數(shù)據(jù)Y,在所述加法步驟中所求得的和進(jìn)行乘積累加運(yùn)算的乘積累加步驟。
按照第7方面的發(fā)明,能夠在電路規(guī)模的增大得以抑制的情況下實(shí)現(xiàn)乘加運(yùn)算。
還有,本發(fā)明的第8方面所采取的運(yùn)算方法是將分別由n個(gè)互相獨(dú)立的M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位的數(shù)據(jù)X和數(shù)據(jù)Y作輸入,來計(jì)算出一個(gè)獨(dú)立的數(shù)據(jù)Z的運(yùn)算方法,其中包括以下幾個(gè)步驟對(duì)所述數(shù)據(jù)X和所述數(shù)據(jù)Y中位于同一數(shù)字位置的所述部分?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算來求乘積的乘法步驟;對(duì)在所述乘法步驟中所求得的乘積,分別進(jìn)行移位的移位步驟;將在所述移位步驟中所求得的值加在一起,來求和的加法步驟;多次循環(huán)輸入所述數(shù)據(jù)X和所述數(shù)據(jù)Y,在所述加法步驟中所求得的和進(jìn)行乘積累加運(yùn)算的乘積累加步驟。在要求出所述乘法步驟中所求得的n個(gè)乘積的累加和的總和來作所述數(shù)據(jù)Z的情況下,在所述移位步驟中不進(jìn)行移位工作;在要分別求出所述乘法步驟中所求得的n個(gè)乘積的累加和來作所述數(shù)據(jù)Z的情況下,在所述移位步驟中,將所述n個(gè)乘積位移到互相不重疊的數(shù)字位置。
按照第8方面的發(fā)明,能夠?qū)崿F(xiàn)步驟數(shù)得以減少的乘積累加運(yùn)算。
下面,對(duì)本發(fā)明中的附圖作簡(jiǎn)要說明。
圖1是本發(fā)明的實(shí)施例所涉及的運(yùn)算裝置的結(jié)構(gòu)圖。
圖2是本發(fā)明的實(shí)施例所涉及的數(shù)據(jù)擴(kuò)充移位器的詳細(xì)結(jié)構(gòu)圖。
圖3是本發(fā)明的實(shí)施例所涉及的第3全加器的詳細(xì)結(jié)構(gòu)圖。
圖4是本發(fā)明的實(shí)施例所涉及的行波進(jìn)位加法器的詳細(xì)結(jié)構(gòu)圖。
圖5是用圖1的運(yùn)算裝置所進(jìn)行的乘加運(yùn)算的說明圖。
圖6是用圖1的運(yùn)算裝置所進(jìn)行的乘加運(yùn)算的時(shí)間圖。
圖7是用圖1的運(yùn)算裝置所進(jìn)行的對(duì)偶乘加運(yùn)算的說明圖。
圖8是用圖1的運(yùn)算裝置所進(jìn)行的對(duì)偶乘加運(yùn)算的時(shí)間圖。
圖9是用圖1的運(yùn)算裝置所進(jìn)行的乘法運(yùn)算的說明圖。
圖10是用圖1的運(yùn)算裝置所進(jìn)行的乘法運(yùn)算的時(shí)間圖。
圖11表示在圖1的運(yùn)算裝置中所進(jìn)行的各種運(yùn)算。
圖12是以往的寄存器分割運(yùn)算器的結(jié)構(gòu)圖。
圖13表示乘加運(yùn)算中的數(shù)組元素。
下面,參照附圖將本發(fā)明的實(shí)施例加以說明。
圖1是本發(fā)明的一實(shí)施例所涉及的運(yùn)算裝置的結(jié)構(gòu)示意圖。圖1中,X和Y分別是由兩個(gè)互相獨(dú)立的16位數(shù)據(jù)所構(gòu)成的32位輸入數(shù)據(jù),Z是64位累加數(shù)據(jù)。S及C是在運(yùn)算中把每一位之和及進(jìn)位分別收集起來而構(gòu)成的64位中間數(shù)據(jù)。使用中間數(shù)據(jù)S、C的理由是在重復(fù)進(jìn)行加法運(yùn)算的情況下,加法效率之好壞,與其每次求出所有位之和,不如先一位一位地求和及進(jìn)位,最后求出所有位的加法結(jié)果。布斯(Booth)譯碼器511、512分別對(duì)XU、XL進(jìn)行譯碼,并輸出其結(jié)果。選擇器521、522選擇并輸出YU和YL中之一。部分積發(fā)生器531將第1譯碼器511的輸出數(shù)據(jù)和由第1選擇器521所選擇的數(shù)據(jù)作輸入,產(chǎn)生并輸出乘法的部分積。部分積發(fā)生器532將第2譯碼器512的輸出數(shù)據(jù)和由第2選擇器522所選擇的數(shù)據(jù)作輸入,產(chǎn)生并輸出乘法的部分積。全加器541、542分別將由第1、第2部分積發(fā)生器531、532所產(chǎn)生的部分積都加起來,并輸出該結(jié)果。數(shù)據(jù)擴(kuò)充移位器55將第1、第2全加器541、542的輸出數(shù)據(jù)作輸入,進(jìn)行數(shù)據(jù)擴(kuò)充及數(shù)據(jù)移位工作,并輸出其結(jié)果。第3選擇器523選擇并輸出“0”和第3寄存器59所存儲(chǔ)的數(shù)據(jù)Z中之一,第4選擇器524選擇并輸出“0”和行波進(jìn)位加法器58的輸出(S+C)中之一。全加器56將通過數(shù)據(jù)擴(kuò)充移位器55被擴(kuò)充、移位的數(shù)據(jù)和第3、第4選擇器523、524所選擇的數(shù)據(jù)作輸入來進(jìn)行全加運(yùn)算,并輸出64位中間數(shù)據(jù)C、S。寄存器571、572存儲(chǔ)第3全加器56的輸出數(shù)據(jù)C和S。行波進(jìn)位加法器58將第1、第2寄存器571、572所存儲(chǔ)的數(shù)據(jù)C和數(shù)據(jù)S作輸入來進(jìn)行行波進(jìn)位加法運(yùn)算,并輸出結(jié)果數(shù)據(jù)(S+C)。寄存器59存儲(chǔ)行波進(jìn)位加法器58的輸出。
圖2示出數(shù)據(jù)擴(kuò)充移位器55的詳細(xì)結(jié)構(gòu)。同圖中,數(shù)據(jù)擴(kuò)充部61由數(shù)據(jù)擴(kuò)充器611~614構(gòu)成,它對(duì)輸入數(shù)據(jù)進(jìn)行符號(hào)擴(kuò)充或者零擴(kuò)充,并輸出其結(jié)果。數(shù)據(jù)移位部62由數(shù)據(jù)移位器621~624構(gòu)成,它將數(shù)據(jù)擴(kuò)充部的輸出數(shù)據(jù)作輸入,進(jìn)行數(shù)據(jù)移位,并輸出其結(jié)果。同圖中,SFT1.0~SFT4.0分別是數(shù)據(jù)移位器621~624的輸出數(shù)據(jù)。
圖3示出第3全加器56的詳細(xì)結(jié)構(gòu)。同圖中,全加器72將數(shù)據(jù)移位器621~624的輸出數(shù)據(jù)SFT1.0~SFT4.0的低位32位、第3選擇器523的輸出數(shù)據(jù)SEL1.0的低位32位和第4選擇器524的輸出數(shù)據(jù)SEL2.0的低位32位作輸入,來進(jìn)行全加運(yùn)算。選擇器73選擇并輸出第4全加器72的溢出信號(hào)和“0”中之一??刂菩盘?hào)CTRL50為“H”時(shí),第5選擇器73選擇第4全加器72的溢出信號(hào)并輸出到第5全加器71中;為“L”時(shí),選擇“0”并輸出到第5全加器71中。全加器71將數(shù)據(jù)移位器621~624的輸出數(shù)據(jù)SFT1.0~SFT4.0的高位32位、第3選擇器523的輸出數(shù)據(jù)SEL1.0的高位32位、第4選擇器524的輸出數(shù)據(jù)SEL2.0的高位32位和第5選擇器73的輸出數(shù)據(jù)作輸入,來進(jìn)行全加運(yùn)算。圖3中,CU和SU是第5全加器71的輸出數(shù)據(jù),CL和SL是第4全加器72的輸出數(shù)據(jù)。
圖4示出行波進(jìn)位加法器58的詳細(xì)結(jié)構(gòu)。
同圖中,行波進(jìn)位加法器82將在第1、第2寄存器571、572的低位32位中所存儲(chǔ)的CL和SL作輸入來進(jìn)行行波進(jìn)位加法,并輸出其結(jié)果。選擇器83選擇并輸出行波進(jìn)位加法器82的溢出信號(hào)和“0”中之一。控制信號(hào)CTRL 50為“H”時(shí),第6選擇器83選擇行波進(jìn)位加法器82的溢出信號(hào)并輸出到行波進(jìn)位加法器81中;為“L”時(shí),選擇“0”并輸出到行波進(jìn)位加法器81中。行波進(jìn)位加法器81將在第1、第2寄存器571、572的高位32位中所存儲(chǔ)的CU、SU及第6選擇器83的輸出數(shù)據(jù)作輸入來進(jìn)行行波進(jìn)位加法,并輸出其結(jié)果。
以下,說明按上述所構(gòu)成的運(yùn)算裝置的動(dòng)作。
(1)關(guān)于由被分為二個(gè)的輸入數(shù)據(jù)來求一個(gè)獨(dú)立的累加數(shù)據(jù)的運(yùn)算動(dòng)作進(jìn)行說明。下面,對(duì)將圖13所示的數(shù)組元素作輸入以求(x0·y0+x1·y1+x2·y2+…+x2n-2·y2n-2+x2n-1·y2n-1)的運(yùn)算加以說明。這里,要說明的是帶符號(hào)的乘加運(yùn)算。此時(shí),假定控制信號(hào)CTRL50為“H”來進(jìn)行運(yùn)算。
圖1中,在第一個(gè)周期,由于第1選擇器521選擇YU,第2選擇器522選擇YL,因此,第1部分積發(fā)生器531產(chǎn)生用以求XU·YU的部分積,第2部分積發(fā)生器532產(chǎn)生用以求XL·YL的部分積。第1全加器541將在第1部分積發(fā)生器531中所產(chǎn)生的部分積都加起來,并輸出運(yùn)算XU·YU中的兩個(gè)32位中間數(shù)據(jù)。同樣地,第2全加器542輸出運(yùn)算XL·YL中的兩個(gè)32位中間數(shù)據(jù)。
來自第1全加器541的兩個(gè)32位中間數(shù)據(jù)被輸入到數(shù)據(jù)擴(kuò)充移位器55的數(shù)據(jù)擴(kuò)充器611、612中而用表示符號(hào)的數(shù)據(jù)擴(kuò)充到64位。通過數(shù)據(jù)擴(kuò)充器611、612被加以符號(hào)擴(kuò)充的數(shù)據(jù),再被輸入到數(shù)據(jù)移位器621、622中。數(shù)據(jù)移位器621、622不進(jìn)行數(shù)據(jù)移位,而輸出運(yùn)算XU·YU中的兩個(gè)64位中間數(shù)據(jù)。
同樣地,來自第2全加器542的兩個(gè)32位中間數(shù)據(jù)被輸入到數(shù)據(jù)擴(kuò)充移位器55的數(shù)據(jù)擴(kuò)充器613、614中而用表示符號(hào)的數(shù)據(jù)擴(kuò)充到64位。通過數(shù)據(jù)擴(kuò)充器613、614而被加以符號(hào)擴(kuò)充的數(shù)據(jù),再被輸入到數(shù)據(jù)移位器623、624中。數(shù)據(jù)移位器623、624不進(jìn)行數(shù)據(jù)移位,而輸出運(yùn)算XL·YL中的64位中間數(shù)據(jù)。
第4選擇器524選擇“0”,第3選擇器523選擇存儲(chǔ)在第3寄存器59中的64位數(shù)據(jù)Z,從而輸出到第3全加器56中。
第3全加器56將數(shù)據(jù)擴(kuò)充移位器的輸出SFT1.0~SFT4.0和第3、第4選擇器523、524的輸出SEL1.0、SEL2.0作輸入,進(jìn)行全加運(yùn)算。此時(shí),由于控制信號(hào)CTRL50為“H”,所以第4全加器72的溢出信號(hào)被輸入到第5全加器71中,而在64位全加運(yùn)算中,溢出信號(hào)從第31位傳播到第32位。
從而,如圖5所示,第3全加器56輸出乘加運(yùn)算(XU·YU+XL·YL+Z)中的兩個(gè)64位中間數(shù)據(jù)C和S。
該64位中間數(shù)據(jù)C和S分別被存儲(chǔ)到第1、第2寄存器571、572中。
在第二個(gè)周期,行波進(jìn)位加法器58將存儲(chǔ)在第1、第2寄存器571、572中的兩個(gè)64位中間數(shù)據(jù)C和S作輸入,來進(jìn)行行波進(jìn)位加法運(yùn)算。此時(shí),由于控制信號(hào)CTRL50為“H”,所以行波進(jìn)位加法器82的溢出信號(hào)被輸入到行波進(jìn)位加法器81中,而在64位行波進(jìn)位加法運(yùn)算中,溢出信號(hào)從第31位傳播到第32位。
從而,如圖5所示,行波進(jìn)位加法器58輸出乘加運(yùn)算(XU·YU+XL·YL+Z)的結(jié)果。第3寄存器59存儲(chǔ)行波進(jìn)位加法器58所輸出的數(shù)據(jù)。
如上所述,運(yùn)算裝置可將由兩個(gè)16位數(shù)據(jù)構(gòu)成的32位數(shù)據(jù)X和Y作輸入來進(jìn)行乘加運(yùn)算,從而,能夠在兩個(gè)周期內(nèi)求得一個(gè)64位累加數(shù)據(jù)(如圖6所示)。
因此,運(yùn)算裝置僅將圖13所示的數(shù)組元素作輸入來執(zhí)行N次乘加運(yùn)算,即可求出(x0·y0+x1·y1+x2·y2+…+x2n-2·y2n-2+x2n-1·y2n-1),不用進(jìn)行以往的運(yùn)算裝置所必需的數(shù)據(jù)傳送和數(shù)據(jù)加法運(yùn)算。
(2)關(guān)于由被分為兩個(gè)的輸入數(shù)據(jù)求出兩個(gè)獨(dú)立的累加數(shù)據(jù)的運(yùn)算動(dòng)作進(jìn)行說明。下面,敘述將由兩個(gè)16位數(shù)據(jù)構(gòu)成的32位數(shù)據(jù)X和Y作輸入來進(jìn)行運(yùn)算而在兩個(gè)周期內(nèi)求出兩個(gè)32位累加數(shù)據(jù)的情況(如圖8所示)。這里,要說明的是帶符號(hào)的對(duì)偶乘加運(yùn)算。此時(shí),假定控制信號(hào)CTRL50為“L”來進(jìn)行運(yùn)算。
圖1中,在第一個(gè)周期,由于第1選擇器521選擇YU,第2選擇器522選擇YL,因此,第1部分積發(fā)生器531產(chǎn)生用以求XU·YU的部分積,第2部分積發(fā)生器532產(chǎn)生用以求XL·YL的部分積。第1全加器541將在第1部分積發(fā)生器531中所產(chǎn)生的部分積都加起來,并輸出運(yùn)算XU·YU中的兩個(gè)32位中間數(shù)據(jù)。同樣地,第2全加器542輸出運(yùn)算XL·YL中的兩個(gè)32位中間數(shù)據(jù)。
來自第1全加器541的兩個(gè)32位中間數(shù)據(jù)被輸入到數(shù)據(jù)擴(kuò)充移位器55的數(shù)據(jù)擴(kuò)充器611、612中而用“0”擴(kuò)充到64位。通過數(shù)據(jù)擴(kuò)充器611、612被加以零擴(kuò)充的數(shù)據(jù),再被輸入到數(shù)據(jù)移位器621、622中。數(shù)據(jù)移位器621、622執(zhí)行32位左移,并輸出運(yùn)算(XU·YU)<<32中的兩個(gè)64位中間數(shù)據(jù)。
同樣地,來自第2全加器542的兩個(gè)32位中間數(shù)據(jù)被輸入到數(shù)據(jù)擴(kuò)充移位器55的數(shù)據(jù)擴(kuò)充器613、614中而用“0”擴(kuò)充到64位。通過數(shù)據(jù)擴(kuò)充器613、614而被加以零擴(kuò)充的數(shù)據(jù),再被輸入到數(shù)據(jù)移位器623、624中。數(shù)據(jù)移位器623、624不進(jìn)行數(shù)據(jù)移位,而輸出運(yùn)算XL·YL中的兩個(gè)64位中間數(shù)據(jù)。
第4選擇器524選擇“0”,第3選擇器523選擇存儲(chǔ)在第3寄存器59中的64位數(shù)據(jù)Z,從而輸出到第3全加器56中。
第3全加器56將數(shù)據(jù)擴(kuò)充移位器的輸出SFT1.0~SFT4.0和第3、第4選擇器523、524的輸出SEL1.0、SEL2.0作輸入,進(jìn)行全加運(yùn)算。此時(shí),由于控制信號(hào)CTRL50為“L”,所以“0”數(shù)據(jù)被輸入到第5全加器71中,而在64位全加運(yùn)算中,溢出信號(hào)不從第31位傳播到第32位。
從而,如圖7所示,第3全加器56輸出高位32位代表運(yùn)算XU·YU+ZU、低位32位代表運(yùn)算XL·YL+ZL的中間數(shù)據(jù)C和S。64位中間數(shù)據(jù)C和S分別被存儲(chǔ)到第1、第2寄存器571、572中。
在第二個(gè)周期,行波進(jìn)位加法器58將存儲(chǔ)在第1、第2寄存器571、572中的兩個(gè)64位中間數(shù)據(jù)C和S作輸入,來進(jìn)行行波進(jìn)位加法運(yùn)算。此時(shí),由于控制信號(hào)CTRL50為“L”,所以“0”數(shù)據(jù)被輸入到行波進(jìn)位加法器81中,而在64位行波進(jìn)位加法運(yùn)算中,溢出信號(hào)不從第31位傳播到第32位。
從而,如圖7所示,行波進(jìn)位加法器58將運(yùn)算(XU·YU+ZU)的結(jié)果作高位32位輸出,將運(yùn)算(XL·YL+ZL)的結(jié)果作低位32位輸出。第3寄存器59存儲(chǔ)行波進(jìn)位加法器58所輸出的數(shù)據(jù)。
如上所述,運(yùn)算裝置可將由兩個(gè)16位數(shù)據(jù)構(gòu)成的32位數(shù)據(jù)X和Y作輸入來進(jìn)行運(yùn)算,從而,能夠在兩個(gè)周期內(nèi)求出兩個(gè)32位累加數(shù)據(jù)(如圖8所示)。
(3)關(guān)于未被分割的輸入數(shù)據(jù)的運(yùn)算動(dòng)作加以說明。下面,敘述將32位數(shù)據(jù)X和Y作輸入,以求64位乘積的情況。這里,要說明的是帶符號(hào)的乘法運(yùn)算。此時(shí),假定控制信號(hào)CTRL50為“H”來進(jìn)行運(yùn)算。
圖1中,在第一個(gè)周期,由于第1選擇器521選擇YU,第2選擇器522選擇YL,因此,第1部分積發(fā)生器531產(chǎn)生用以求XU·YU的部分積,第2部分積發(fā)生器532產(chǎn)生用以求XL·YL的部分積。第1全加器541將在第1部分積發(fā)生器531中所產(chǎn)生的部分積都加起來,并輸出運(yùn)算XU·YU中的兩個(gè)32位中間數(shù)據(jù)。同樣地,第2全加器542輸出運(yùn)算XL·YL中的兩個(gè)32位中間數(shù)據(jù)。
來自第1全加器541的兩個(gè)32位中間數(shù)據(jù)被輸入到數(shù)據(jù)擴(kuò)充移位器55的數(shù)據(jù)擴(kuò)充器611、612中而用表示符號(hào)的數(shù)據(jù)擴(kuò)充到64位。通過數(shù)據(jù)擴(kuò)充器611、612被加以符號(hào)擴(kuò)充的數(shù)據(jù),再被輸入到數(shù)據(jù)移位器621、622中。數(shù)據(jù)移位器621、622執(zhí)行32位左向算術(shù)移位,并輸出運(yùn)算(XU·YU)<<32中的兩個(gè)64位中間數(shù)據(jù)。
同樣地,來自第2全加器542的兩個(gè)32位中間數(shù)據(jù)被輸入到數(shù)據(jù)擴(kuò)充移位器55的數(shù)據(jù)擴(kuò)充器613、614中而用表示符號(hào)的數(shù)據(jù)擴(kuò)充到64位。通過數(shù)據(jù)擴(kuò)充器613、614而被加以符號(hào)擴(kuò)充的數(shù)據(jù),再被輸入到數(shù)據(jù)移位器623、624中。數(shù)據(jù)移位器623、624不進(jìn)行數(shù)據(jù)移位,而輸出運(yùn)算XL·YL中的兩個(gè)64位中間數(shù)據(jù)。
再就是,第3、第4選擇器523、524選擇“0”,從而輸出到第3全加器56中。
第3全加器56將數(shù)據(jù)擴(kuò)充移位器的輸出SFT1.0~SFT4.0和第3、第4選擇器523、524的輸出SEL1.0、SEL2.0作輸入,進(jìn)行全加運(yùn)算。此時(shí),由于控制信號(hào)CTRL50為“H”,所以第4全加器72的溢出信號(hào)被輸入到第5全加器71中,而在64位全加運(yùn)算中,溢出信號(hào)從第31位傳播到第32位。
從而,如圖9所示,第3全加器56輸出乘加運(yùn)算(((XU·YU)<<32)+XL·YL)中的兩個(gè)64位中間數(shù)據(jù)C和S。
64位中間數(shù)據(jù)C和S分別被存儲(chǔ)到第1、第2寄存器571、572中。
在第二個(gè)周期,行波進(jìn)位加法器58將存儲(chǔ)在第1、第2寄存器571、572中的兩個(gè)64位中間數(shù)據(jù)C和S作輸入,來進(jìn)行行波進(jìn)位加法運(yùn)算。此時(shí),由于控制信號(hào)CTRL50為“H”,所以行波進(jìn)位加法器82的溢出信號(hào)被輸入到行波進(jìn)位加法器81中,而在64位行波進(jìn)位加法運(yùn)算中,溢出信號(hào)從第31位傳播到第32位。
從而,如圖9所示,行波進(jìn)位加法器58輸出乘加運(yùn)算(((XU·YU)<<32)+XL·YL)的結(jié)果。
還有,由于第1選擇器521選擇YL,第2選擇器522選擇YU,因此,第1部分積發(fā)生器531產(chǎn)生用以求XU·YL的部分積,第2部分積發(fā)生器532產(chǎn)生用以求XL·YU的部分積。第1全加器541將在第1部分積發(fā)生器531中所產(chǎn)生的部分積都加起來,并輸出運(yùn)算XU·YL中的兩個(gè)32位中間數(shù)據(jù)。同樣地,第2全加器542輸出運(yùn)算XL·YU中的兩個(gè)32位中間數(shù)據(jù)。
來自第1全加器541的兩個(gè)32位中間數(shù)據(jù)被輸入到數(shù)據(jù)擴(kuò)充移位器55的數(shù)據(jù)擴(kuò)充器611、612中而用表示符號(hào)的數(shù)據(jù)擴(kuò)充到64位。通過數(shù)據(jù)擴(kuò)充器611、612被加以符號(hào)擴(kuò)充的數(shù)據(jù),再被輸入到數(shù)據(jù)移位器621、622中。數(shù)據(jù)移位器621、622執(zhí)行16位左向移位,并輸出運(yùn)算(XU·YL)<<16中的兩個(gè)64位中間數(shù)據(jù)。
同樣地,來自第2全加器542的兩個(gè)32位中間數(shù)據(jù)被輸入到數(shù)據(jù)擴(kuò)充移位器55的數(shù)據(jù)擴(kuò)充器613、614中而用表示符號(hào)的數(shù)據(jù)擴(kuò)充到64位。通過數(shù)據(jù)擴(kuò)充器613、614而被加以符號(hào)擴(kuò)充的數(shù)據(jù),再被輸入到數(shù)據(jù)移位器623、624中。數(shù)據(jù)移位器623、624執(zhí)行16位左向移位,并輸出運(yùn)算(XL·YU)<<16中的兩個(gè)64位中間數(shù)據(jù)。
第4選擇器524選擇行波進(jìn)位加法器58的輸出,第3選擇器523選擇“0”,從而輸出到第3全加器56中。
第3全加器56將數(shù)據(jù)擴(kuò)充移位器的輸出SFT1.0~SFT4.0和第3、第4選擇器523、524的輸出SEL1.0、SEL2.0作輸入,進(jìn)行全加運(yùn)算。此時(shí),由于控制信號(hào)CTRL50為“H”,所以第4全加器72的溢出信號(hào)被輸入到第5全加器71中,而在64位全加運(yùn)算中,溢出信號(hào)從第31位傳播到第32位。
從而,如圖9所示,第3全加器56輸出運(yùn)算(((XU·YU)<<32)+XL·YL)+(((XU·YL)<<16)+((XL·YU)<<16))中的兩個(gè)64位中間數(shù)據(jù)C和S。64位中間數(shù)據(jù)C和S分別被存儲(chǔ)到第1、第2寄存器571、572中。
在第三個(gè)周期,行波進(jìn)位加法器58將存儲(chǔ)在第1、第2寄存器571、572中的兩個(gè)64位中間數(shù)據(jù)C和S作輸入,來進(jìn)行行波進(jìn)位加法運(yùn)算。此時(shí),由于控制信號(hào)CTRL50為“H”,所以行波進(jìn)位加法器82的溢出信號(hào)被輸入到行波進(jìn)位加法器81中,而在64位行波進(jìn)位加法運(yùn)算中,溢出信號(hào)從第31位傳播到第32位。
從而,如圖9所示,行波進(jìn)位加法器58輸出運(yùn)算(((XU·YU)<<32)+XL·YL)+(((XU·YL)<<16)+((XL·YU)<<16))即乘法運(yùn)算X·Y的結(jié)果。
如上所述,運(yùn)算裝置可將32位數(shù)據(jù)X和Y作輸入來進(jìn)行乘法運(yùn)算,從而,能夠在三個(gè)周期內(nèi)求出64位的乘積(如圖10所示)。
再就是,圖1所示的運(yùn)算器,除了上述運(yùn)算以外,還能進(jìn)行各種運(yùn)算。
圖11示出所述各種運(yùn)算及其控制。同圖中,第1~第4選擇器521~524欄表示被選擇的數(shù)據(jù),移位器621~624欄表示移位量及方向。m<<表示m位左移,m>>表示m位右移。S+C是行波進(jìn)位加法器58的輸出。
選擇器和移位器屬于二級(jí)流水線運(yùn)算器的第一級(jí),因此,圖11中,關(guān)于二周期運(yùn)算所示出的是第一個(gè)周期的控制情況;關(guān)于三周期運(yùn)算,示出的是第一個(gè)周期和第二個(gè)周期的控制情況。
值得一提的是,圖1中,將第3、第4選擇器523、524的輸出輸入到第3全加器56中,但是,將其輸入第1、第2全加器541、542也可得到同樣的結(jié)果。
需提一下,圖1所示的運(yùn)算裝置具有二級(jí)流水線結(jié)構(gòu),但是,采用多級(jí)流水線結(jié)構(gòu),也可得到同樣的結(jié)果。
另外,在本實(shí)施例中,將寄存器分為兩部分,將被分為兩部分的數(shù)據(jù)作輸入來進(jìn)行運(yùn)算,但是,將被分為兩個(gè)以上的數(shù)據(jù)作輸入,也可獲得同樣的結(jié)果。
-效果-綜上所述,若按照本發(fā)明,能夠得到以下的有利的效果即使在由被分割的多個(gè)輸入數(shù)據(jù)求出一個(gè)獨(dú)立的累加數(shù)據(jù)的運(yùn)算中,也不用進(jìn)行數(shù)據(jù)傳送、數(shù)據(jù)加法運(yùn)算處理。此外,還能進(jìn)行圖11所示的各種運(yùn)算。
總之,本發(fā)明的運(yùn)算裝置及運(yùn)算方法有用于圖像處理或者音頻處理等,又可適用于包括這些處理的多媒體數(shù)據(jù)處理。
權(quán)利要求
1.一種運(yùn)算裝置,其為將分別由n個(gè)互相獨(dú)立的M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位的數(shù)據(jù)X和數(shù)據(jù)Y作輸入,并輸出一個(gè)獨(dú)立的數(shù)據(jù)Z的運(yùn)算裝置,其中包括對(duì)所述數(shù)據(jù)X和所述數(shù)據(jù)Y中位于同一數(shù)字位置的所述部分?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算的第1到第n個(gè)乘法器;可對(duì)所述第1到第n個(gè)乘法器的輸出分別進(jìn)行移位的第1到第n個(gè)移位器;和將所述第1到第n個(gè)移位器的輸出都加起來的加法器,所述第1到第n個(gè)移位器進(jìn)行以下的控制在要求出所述第1到第n個(gè)乘法器的輸出之總和來作所述數(shù)據(jù)Z的情況下,不進(jìn)行移位;在要分別求出所述第1到第n個(gè)乘法器的輸出來作所述數(shù)據(jù)Z的情況下,將所述第1到第n個(gè)乘法器的輸出位移到互相不重疊的數(shù)字位置。
2.一種運(yùn)算裝置,其為將分別由n個(gè)互相獨(dú)立的M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位的數(shù)據(jù)X和數(shù)據(jù)Y作輸入,并輸出一個(gè)獨(dú)立的數(shù)據(jù)Z的運(yùn)算裝置,其中包括可存儲(chǔ)所述數(shù)據(jù)Z的寄存器;對(duì)所述數(shù)據(jù)X和所述數(shù)據(jù)Y中位于同一數(shù)字位置的所述部分?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算的第1到第n個(gè)乘法器;將所述第1到第n個(gè)乘法器和所述寄存器的輸出都加起來并將該結(jié)果輸入所述寄存器的加法器,將多次循環(huán)輸入的所述數(shù)據(jù)X和所述數(shù)據(jù)Y進(jìn)行乘積累加運(yùn)算。
3.一種運(yùn)算裝置,其為將分別由n個(gè)互相獨(dú)立的M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位的數(shù)據(jù)X和數(shù)據(jù)Y作輸入,并輸出一個(gè)獨(dú)立的數(shù)據(jù)Z的運(yùn)算裝置,其中包括可存儲(chǔ)所述數(shù)據(jù)Z的寄存器;對(duì)所述數(shù)據(jù)X和所述數(shù)據(jù)Y中位于同一數(shù)字位置的所述部分?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算的第1到第n個(gè)乘法器;可對(duì)所述第1到第n個(gè)乘法器的輸出分別進(jìn)行移位的第1到第n個(gè)移位器;將所述第1到第n個(gè)移位器和所述寄存器的輸出都加起來并將該結(jié)果輸入所述寄存器的加法器,在要用多次循環(huán)輸入的所述數(shù)據(jù)X和所述數(shù)據(jù)Y來進(jìn)行乘積累加運(yùn)算的情況下,所述第1到第n個(gè)移位器進(jìn)行以下的控制在要求出所述第1到第n個(gè)乘法器的乘積的累加和的總和來作所述數(shù)據(jù)Z時(shí),所述移位器不進(jìn)行移位;在要分別求出所述第1到第n個(gè)乘法器的乘積的累加和來作所述數(shù)據(jù)Z時(shí),所述移位器將所述第1到第n個(gè)乘法器的輸出位移到互相不重疊的數(shù)字位置。
4.一種運(yùn)算裝置,其為將分別由n個(gè)M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位的數(shù)據(jù)X和數(shù)據(jù)Y作輸入,并輸出數(shù)據(jù)Z的運(yùn)算裝置,其中包括可存儲(chǔ)所述數(shù)據(jù)Z的寄存器;從構(gòu)成所述數(shù)據(jù)Y的n個(gè)部分?jǐn)?shù)據(jù)中選擇一個(gè)的選擇器;從構(gòu)成所述數(shù)據(jù)X的n個(gè)部分?jǐn)?shù)據(jù)中取出互相不重疊的一個(gè),并乘以所述選擇器的輸出的第1到第n個(gè)乘法器;可對(duì)所述第1到第n個(gè)乘法器的輸出分別進(jìn)行移位的第1到第n個(gè)移位器;將所述第1到第n個(gè)移位器和所述寄存器的輸出都加起來并將該結(jié)果輸入所述寄存器的加法器,在第p次循環(huán)中,所述選擇器選擇從低位數(shù)起第p個(gè)所述部分?jǐn)?shù)據(jù),從低位數(shù)起第q個(gè)移位器進(jìn)行(p+q-2)M位的移位控制。
5.一種運(yùn)算裝置,其為將2M位的數(shù)據(jù)X和數(shù)據(jù)Y作輸入,并輸出4M位數(shù)據(jù)Z的運(yùn)算裝置,其中包括第1寄存器,存儲(chǔ)在加法運(yùn)算中所產(chǎn)生的每一位的進(jìn)位C;第2寄存器,存儲(chǔ)在加法運(yùn)算中所產(chǎn)生的每一位的和S;第3寄存器,存儲(chǔ)所述數(shù)據(jù)Z;第1譯碼器,將所述數(shù)據(jù)X的高位M位作輸入并進(jìn)行譯碼;第2譯碼器,將所述數(shù)據(jù)X的低位M位作輸入并進(jìn)行譯碼;第1、第2選擇器,選擇所述數(shù)據(jù)Y的高位M位和低位M位中之一;第1部分積發(fā)生器,將所述第1譯碼器的輸出數(shù)據(jù)及所述第1選擇器的輸出數(shù)據(jù)作輸入,來產(chǎn)生乘加運(yùn)算的部分積;第2部分積發(fā)生器,將所述第2譯碼器的輸出數(shù)據(jù)及所述第2選擇器的輸出數(shù)據(jù)作輸入,來產(chǎn)生乘加運(yùn)算的部分積;第1全加器,將由所述第1部分積發(fā)生器所產(chǎn)生的部分積加起來;第2全加器,將由所述第2部分積發(fā)生器所產(chǎn)生的部分積加起來;數(shù)據(jù)擴(kuò)充移位器,可將所述第1全加器和所述第2全加器的輸出數(shù)據(jù)作輸入,進(jìn)行數(shù)據(jù)擴(kuò)充及數(shù)據(jù)移位工作;行波進(jìn)位加法器,將上述第1、第2寄存器所存儲(chǔ)的上述每一位的進(jìn)位C和上述每一位的和S作輸入來進(jìn)行行波進(jìn)位加法運(yùn)算,將該結(jié)果輸出到上述第3寄存器中;第3選擇器,選擇并輸出所述第3寄存器所存儲(chǔ)的數(shù)據(jù)和零數(shù)據(jù)中之一;第4選擇器,選擇并輸出所述行波進(jìn)位加法器的輸出數(shù)據(jù)和零數(shù)據(jù)中之一;第3全加器,將所述數(shù)據(jù)擴(kuò)充移位器的輸出數(shù)據(jù)、所述第4選擇器的輸出數(shù)據(jù)、所述第3選擇器的輸出數(shù)據(jù)作輸入來將其全部都加起來,并將每一位的進(jìn)位C和每一位的和S分別輸入所述第1寄存器和第2寄存器。
6.一種運(yùn)算方法,其為將分別由n個(gè)互相獨(dú)立的M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位數(shù)據(jù)X和數(shù)據(jù)Y作輸入,來計(jì)算出一個(gè)獨(dú)立的數(shù)據(jù)Z的運(yùn)算方法,其中包括以下幾個(gè)步驟對(duì)所述數(shù)據(jù)X和所述數(shù)據(jù)Y中位于同一數(shù)字位置的所述部分?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算以求乘積的乘法步驟;對(duì)在所述乘法步驟中所求得的乘積,分別進(jìn)行移位的移位步驟;將在所述移位步驟中所求得的值進(jìn)行加法運(yùn)算以求和的加法步驟,在要求出所述乘法步驟中所求得的n個(gè)乘積的總和來作所述數(shù)據(jù)Z的情況下,在所述移位步驟中不進(jìn)行移位工作,在要分別求出所述乘法步驟中的n個(gè)乘積來作所述數(shù)據(jù)Z的情況下,在所述移位步驟中,將所述n個(gè)乘積位移到互相不重疊的數(shù)字位置。
7.一種運(yùn)算方法,其為將分別由n個(gè)互相獨(dú)立的M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位數(shù)據(jù)X和數(shù)據(jù)Y作輸入,來計(jì)算出一個(gè)獨(dú)立的數(shù)據(jù)Z的運(yùn)算方法,其中包括以下幾個(gè)步驟對(duì)所述數(shù)據(jù)X和所述數(shù)據(jù)Y中位于同一數(shù)字位置的所述部分?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算來求乘積的乘法步驟;將所述乘法步驟中所求得的n個(gè)乘積進(jìn)行加法運(yùn)算來求和的加法步驟;多次循環(huán)輸入所述數(shù)據(jù)X和所述數(shù)據(jù)Y,在所述加法步驟中所求得的和進(jìn)行乘積累加運(yùn)算的乘積累加步驟。
8.一種運(yùn)算方法,其為將分別由n個(gè)互相獨(dú)立的M位部分?jǐn)?shù)據(jù)構(gòu)成的(n×M)位數(shù)據(jù)X和數(shù)據(jù)Y作輸入,來計(jì)算出一個(gè)獨(dú)立的數(shù)據(jù)Z的運(yùn)算方法,其中包括以下幾個(gè)步驟對(duì)所述數(shù)據(jù)X和所述數(shù)據(jù)Y中位于同一數(shù)字位置的所述部分?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算來求乘積的乘法步驟;對(duì)在所述乘法步驟中所求得的乘積,分別進(jìn)行移位的移位步驟;將在所述移位步驟中所求得的值加在一起,來求和的加法步驟;多次循環(huán)輸入所述數(shù)據(jù)X和所述數(shù)據(jù)Y,在所述加法步驟中所求得的和進(jìn)行乘積累加運(yùn)算的乘積累加步驟,在要求出所述乘法步驟中所求得的n個(gè)乘積的累加和的總和來作所述數(shù)據(jù)Z的情況下,在所述移位步驟中不進(jìn)行移位工作,在要分別求出所述乘法步驟中所求得的n個(gè)乘積的累加和來作所述數(shù)據(jù)Z的情況下,在所述移位步驟中,將所述n個(gè)乘積位移到互相不重疊的數(shù)字位置。
全文摘要
本發(fā)明的目的是提供一種可執(zhí)行乘積累加運(yùn)算的運(yùn)算裝置,其中,即使在要由被分割的多個(gè)輸入數(shù)據(jù)獲得一個(gè)結(jié)果的情況下,也不用進(jìn)行數(shù)據(jù)傳送和數(shù)據(jù)加法運(yùn)算,處理周期數(shù)也少。輸入數(shù)據(jù)X和Y,通過第1譯碼器511、第1選擇器521、第1部分積發(fā)生器531和第1全加器541來計(jì)算出X和Y當(dāng)中高位部分間之乘積,又通過第2譯碼器512、第2選擇器522、第2部分積發(fā)生器532和第2全加器542來計(jì)算出X和Y當(dāng)中低位部分間之乘積,再通過移位器55對(duì)所述運(yùn)算結(jié)果進(jìn)行適當(dāng)?shù)囊莆豢刂?然后通過第3全加器56和行波進(jìn)位加法器58,和所反饋的數(shù)據(jù)Z加在一起,就這樣獲得乘積累加運(yùn)算的結(jié)果數(shù)據(jù)Z。
文檔編號(hào)G06F7/52GK1288545SQ99802266
公開日2001年3月21日 申請(qǐng)日期1999年1月21日 優(yōu)先權(quán)日1998年1月21日
發(fā)明者鹿子木朋睦, 中島雅逸 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社