乘累加器的制造方法
【專利摘要】本發(fā)明提供一種乘累加器。該乘累加器包括M級(jí)運(yùn)算元素列,其中,第1級(jí)運(yùn)算元素列中包括N個(gè)乘法器,第2至第M級(jí)運(yùn)算元素列中的運(yùn)算元素均為加法器,任一所述乘法器或所述加法器連接有寄存器,其中,與第一加法器連接的寄存器為乒乓寄存器,第一加法器為加法器中的至少一個(gè)加法器,乒乓寄存器用于存儲(chǔ)所述第一加法器在至少兩個(gè)運(yùn)算時(shí)刻分別輸出的相加結(jié)果,并將所述相加結(jié)果在對(duì)應(yīng)的運(yùn)算時(shí)刻分別輸出給后一級(jí)運(yùn)算元素列的加法器或作為所述乘累加器的運(yùn)算結(jié)果輸出。本發(fā)明提供的乘累加器解決現(xiàn)有技術(shù)乘累加器在多維數(shù)據(jù)隨機(jī)出現(xiàn)時(shí)效率低的問(wèn)題,從而提高運(yùn)算效率。
【專利說(shuō)明】乘累加器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù),尤其涉及一種乘累加器。
【背景技術(shù)】
[0002]乘累加器(Multiply and Accumulate,簡(jiǎn)稱MAC)用于完成向量相乘、矩陣相乘和向量矩陣互乘等乘累加運(yùn)算,是協(xié)處理器(Cooperat1n Processor,簡(jiǎn)稱CP)、數(shù)字信號(hào)處理器(Digital Signal Processing,簡(jiǎn)稱DSP)、中央處理器(Central Processing Unit,簡(jiǎn)稱 CPU)和專用指令處理器(Applicat1n Specific Instruct1n Processor,簡(jiǎn)稱 ASIP)等處理器中極其重要的運(yùn)算子系統(tǒng)。乘累加器架構(gòu)作為矢量指令的架構(gòu)載體,可以應(yīng)用在多個(gè)領(lǐng)域中完成重要的功能,如通信領(lǐng)域中長(zhǎng)期演進(jìn)(Long Term Evolut1n,簡(jiǎn)稱LTE)上下行多入多出通信技術(shù)(Multiple Input Multiple Output,簡(jiǎn)稱ΜΙΜΟ)編碼和譯碼的向量或矩陣處理、下行波束成形技術(shù)(Beam Forming,簡(jiǎn)稱BF)中的天線數(shù)據(jù)加權(quán)處理,信號(hào)處理領(lǐng)域中的數(shù)據(jù)處理,圖形圖像領(lǐng)域中的數(shù)據(jù)處理。
[0003]現(xiàn)有的乘累加器包括Μ級(jí)運(yùn)算元素列,Μ為大于等于2的自然數(shù);其中,第1級(jí)運(yùn)算元素列中每行的運(yùn)算元素為乘法器,且第1級(jí)中運(yùn)算元素的行數(shù)為Ν,Ν為自然數(shù),等于所述乘累加器支持的最大輸入數(shù)據(jù)維度,且2~ (Μ-1) =Ν ;第2級(jí)至第Μ級(jí)的運(yùn)算元素列中包括加法器,每級(jí)加法器的行數(shù)為前級(jí)乘法器或前級(jí)加法器行數(shù)的二分之一;每個(gè)乘法器和每個(gè)加法器分別連接有寄存器,所述寄存器用于在每個(gè)運(yùn)算時(shí)刻記錄該運(yùn)算元素的運(yùn)算結(jié)果并輸出。例如,圖1為現(xiàn)有乘累加器的架構(gòu)示意圖,參考圖1,該累加器架構(gòu)由8個(gè)支持16比特復(fù)乘的乘法器和7個(gè)加法器組成,各乘法器分別記為Μ1-Μ8,各加法器分別記為A11-Α14、Α21、Α22和Α31,即Μ為4,Ν為8。每個(gè)乘法器和加法器分別連接一個(gè)寄存器,記為R。所述乘法器位于輸入端的第一級(jí),用于處理兩個(gè)16比特復(fù)數(shù)向量相乘,由于乘法器數(shù)量為8所以最大支持8維向量或矩陣相乘。其結(jié)果通過(guò)連接的寄存器輸出給下級(jí)加法器,加法器用于處理前一級(jí)的兩個(gè)運(yùn)算元素輸出結(jié)果的相加運(yùn)算,其結(jié)果通過(guò)連接的寄存器輸出給下一級(jí)運(yùn)算元素,直至從加法器Α31輸出最終的向量相乘結(jié)果。矩陣相乘原理相同,此處不再舉例。向量的維數(shù)是指向量中的元素的個(gè)數(shù),例如兩個(gè)8維向量相乘,其中向量X中含xl、χ2、χ3、χ4、χ5、χ6、χ7 和 χ8 這 8 個(gè)元素,向量 Υ 中含 yl、y2、y3> y4> y5> y6> y7 和 y8 這 8 個(gè)元素,乘累加器完成的向量X和Y相乘運(yùn)算就是兩個(gè)向量中的元素對(duì)應(yīng)相乘并累加,即xlXyl+x2Xy2+x3Xy3+x4Xy4+x5Xy5+x6Xy6+x7Xy7+x8Xy8。圖 1 中的 8 個(gè)乘法器可記為
Ml、Mn、......M8, η從1到8, Μη用于處理xnXyn運(yùn)算,每個(gè)乘法器對(duì)向量中對(duì)應(yīng)元素相乘后在寄存器中緩存,再如箭頭所示,輸出相乘結(jié)果到加法器進(jìn)行相加處理,相加后的結(jié)果在寄存器中緩存,而后輸出到后級(jí)的加法器,以此類推,直至最后一級(jí)加法器相加后輸出。如圖1所示,節(jié)點(diǎn)A處的加法器A21處理8維向量中前4個(gè)元素對(duì)應(yīng)相乘并累加的結(jié)果,即xlXyl+x2X y2+x3 X y3+x4 X y4,B節(jié)點(diǎn)的加法器A22處理8維向量中后4個(gè)元素對(duì)應(yīng)相乘并的結(jié)果,即X5Xy5+X6Xy6+X7Xy7+X8Xy8,然后在節(jié)點(diǎn)C將節(jié)點(diǎn)A的結(jié)果和節(jié)點(diǎn)B的結(jié)果相加。
[0004]乘法器的效率=參與運(yùn)算的乘法器的數(shù)量/乘法器的總量,則上述現(xiàn)有乘累加器中乘法器的效率為8/8=100%。上述MAC架構(gòu)只能在完成該8維向量相乘運(yùn)算后,才能處理下個(gè)向量的運(yùn)算,如果下個(gè)輸入是兩個(gè)4維向量的元素,該MAC架構(gòu)完成兩個(gè)4維向量里的元素對(duì)應(yīng)相乘時(shí),只占用一半的資源即只通過(guò)A節(jié)點(diǎn)到C節(jié)點(diǎn)輸出,這時(shí)會(huì)有4個(gè)乘法器空閑,乘法器的效率為(8+4)/ (8+8)=75%。完成上述4維向量相乘運(yùn)算后,如果下個(gè)輸入是2維向量,必須要等到4維向量輸出后才能處理,而且只有2個(gè)乘法器參與運(yùn)算處理,其余6個(gè)乘法器處于空閑,這時(shí)乘法器效率為(8+4+2) / (8*3) =58%。
[0005]現(xiàn)有技術(shù)存在的一個(gè)問(wèn)題是,當(dāng)輸入向量的維度是8、4和2隨機(jī)出現(xiàn)時(shí),現(xiàn)有MAC架構(gòu)的效率會(huì)進(jìn)一步降低。而在實(shí)際場(chǎng)景中,不同維度的向量、矩陣大多是不規(guī)律出現(xiàn)的,比如通信領(lǐng)域中的ΜΜ0或BF處理,所配置的天線數(shù)可能不同,那么其算法配置中的層數(shù)、天線數(shù)、波束成形方式等都可能不同,由此使得一個(gè)載扇內(nèi)大量的MMO、BF處理具有不同的維度,而如何在不同維度隨機(jī)共存的情況下,提升MAC運(yùn)算的處理效率非常重要,直接影響到通信時(shí)延指標(biāo)、通信設(shè)備的成本、功耗等各方面。
[0006]現(xiàn)有技術(shù)還有一個(gè)問(wèn)題是當(dāng)維度繼續(xù)增加時(shí),比如支持到16、32維,該MAC架構(gòu)無(wú)法支持多維的共存,而只能把數(shù)據(jù)按每8個(gè)分為一組,分組來(lái)處理。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實(shí)施例提供一種乘累加器,以解決現(xiàn)有技術(shù)乘累加器在多維數(shù)據(jù)隨機(jī)出現(xiàn)時(shí)效率低的問(wèn)題,從而提高運(yùn)算效率。
[0008]第一方面,本發(fā)明實(shí)施例提供一種乘累加器,包括:
[0009]Μ級(jí)運(yùn)算元素列,其中,第1級(jí)運(yùn)算元素列中包括Ν個(gè)運(yùn)算元素,所述Ν個(gè)運(yùn)算元素均為乘法器,第2至第Μ級(jí)運(yùn)算元素列中的運(yùn)算元素均為加法器,第1-Ι級(jí)運(yùn)算元素列中的運(yùn)算元素每?jī)蓚€(gè)劃分為一組,第i級(jí)運(yùn)算元素列中的每個(gè)加法器與第1-Ι級(jí)運(yùn)算元素列中的一組運(yùn)算元素相連,用于對(duì)所連接的運(yùn)算元素的運(yùn)算結(jié)果進(jìn)行求和,任一所述乘法器或所述加法器連接有寄存器,所述寄存器用于在每個(gè)運(yùn)算時(shí)刻記錄所述乘法器或所述加法器的運(yùn)算結(jié)果并輸出,Μ為大于等于2的自然數(shù),N=2m-1, i為自然數(shù)且l〈i彡Μ ;
[0010]與第一加法器連接的所述寄存器為乒乓寄存器,所述第一加法器為所述加法器中的至少一個(gè)加法器,所述乒乓寄存器用于存儲(chǔ)所述第一加法器在至少兩個(gè)運(yùn)算時(shí)刻分別輸出的相加結(jié)果,并將所述相加結(jié)果在對(duì)應(yīng)的運(yùn)算時(shí)刻分別輸出給后一級(jí)運(yùn)算元素列的加法器或作為所述乘累加器的運(yùn)算結(jié)果輸出,所述相加結(jié)果為所述第一加法器的前一級(jí)運(yùn)算元素列中的至少兩個(gè)運(yùn)算元素分別輸出的運(yùn)算結(jié)果之和。
[0011]在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述乘累加器還包括:
[0012]至少一個(gè)附加寄存器,設(shè)置于第3級(jí)至第Μ級(jí)運(yùn)算元素列中,且每級(jí)運(yùn)算元素列中的附加寄存器與加法器數(shù)量之和等于Ν/2,各附加寄存器與前級(jí)運(yùn)算元素或前級(jí)附加寄存器相連,用于直接獲取前級(jí)的輸出結(jié)果并輸出。
[0013]在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述乒乓寄存器包括至少兩個(gè)寄存器,所述兵乓寄存器中的各個(gè)寄存器用于在不同運(yùn)算時(shí)刻記錄運(yùn)算結(jié)果并輸出。
[0014]在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述兵乓寄存器設(shè)置在第2級(jí)至第Μ-1級(jí)運(yùn)算元素列中,且設(shè)置在第m級(jí)的乒乓寄存器與該級(jí)倒數(shù)第2~ (m-2)行的加法器連接,其中,2彡m彡Μ-1。
[0015]根據(jù)第一方面、第一方面的第一種至第三種任意一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,至少一個(gè)加法器為多輸入加法器,所述多輸入加法器與前級(jí)的三個(gè)以上運(yùn)算元素分別相連,用于將所述三個(gè)以上運(yùn)算元素的運(yùn)算結(jié)果相加。
[0016]根據(jù)第一方面的第四種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述多輸入加法器為三輸入加法器,每個(gè)三輸入加法器與前級(jí)的三行運(yùn)算元素分別相連,所述三輸入加法器設(shè)置在第3級(jí)至第Μ-l級(jí)運(yùn)算元素列中,設(shè)置在第m級(jí)的三輸入加法器位于倒數(shù)第L行,其中L=(2~(m-2)) Xn,L的取值范圍滿足(2~(m_2)) Xn ( N/2,其中,η ^ 1, 3 ^ m ^ Μ-1 ;
[0017]所述三輸入加法器與上一級(jí)加法器中行數(shù)最接近的三個(gè)運(yùn)算元素分別相連;
[0018]其它加法器為二輸入加法器,每個(gè)二輸入加法器與前級(jí)的兩行運(yùn)算元素分別相連。
[0019]根據(jù)第一方面、第一方面的第一種至第三種任意一種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,第Μ級(jí)第1行的加法器為末級(jí)三輸入加法器,所述末級(jí)三輸入加法器的兩個(gè)輸入分別與前級(jí)的兩個(gè)加法器相連,所述末級(jí)三輸入加法器的輸出連接至所述末級(jí)三輸入加法器的第三個(gè)輸入。
[0020]根據(jù)第一方面、第一方面的第一種至第三種任意一種可能的實(shí)現(xiàn)方式,在第七種可能的實(shí)現(xiàn)方式中:
[0021]Ν=8,Μ=4;
[0022]所述乒乓寄存器的數(shù)量為一個(gè),設(shè)置在第3級(jí)第2行,用于分別存儲(chǔ)兩個(gè)時(shí)刻輸出的兩個(gè)相加結(jié)果,其中一個(gè)輸出結(jié)果用于提供給第4級(jí)加法器,另一個(gè)輸出結(jié)果用于通過(guò)附加寄存器直接輸出;
[0023]所述附加寄存器的數(shù)量為一個(gè),與上級(jí)所述乒乓寄存器相連,獲取所述乒乓寄存器的輸出結(jié)果并輸出。
[0024]根據(jù)第一方面的第五種可能的實(shí)現(xiàn)方式,在第一方面的第八種可能的實(shí)現(xiàn)方式中:
[0025]Ν=8,Μ=4;
[0026]乒乓寄存器的數(shù)量為兩個(gè),分別為設(shè)置在第2級(jí)倒數(shù)第1行的第一兵乓寄存器和第3級(jí)倒數(shù)第2行的第二兵乓寄存器,所述第一乒乓寄存器的輸出分別與第3級(jí)中的第1行、第3行和第4行運(yùn)算元素相連,所述第二乒乓寄存器的輸出分別與第4級(jí)中的第1行和第3行運(yùn)算元素相連;
[0027]三輸入加法器的數(shù)量為兩個(gè),分別為設(shè)置在第3級(jí)倒數(shù)第2行的第一三輸入加法器和第3級(jí)倒數(shù)第4行的第二三輸入加法器,所述第一三輸入加法器的輸入分別與第2級(jí)中的第1行、第2行和第4行運(yùn)算元素相連,所述第二三輸入加法器的輸入分別與第2級(jí)中的第2行、第3行和第4行運(yùn)算元素相連;
[0028]第2級(jí)的運(yùn)算元素為二輸入加法器,數(shù)量為四個(gè),其輸入分別與第1級(jí)乘法器相連;
[0029]第4級(jí)第1行運(yùn)算元素為二輸入加法器,其輸入分別與第3級(jí)中第1行和第3行運(yùn)算元素相連,其結(jié)果直接輸出;
[0030]附加寄存器的數(shù)量為5,分別設(shè)置在第3級(jí)第2行、第3級(jí)第4行、第4級(jí)第2行、第4級(jí)第3行和第4級(jí)第4行。
[0031]根據(jù)第一方面的第六種可能的實(shí)現(xiàn)方式,在第一方面的第九種可能的實(shí)現(xiàn)方式中:
[0032]N=8, M=4 ;
[0033]乒乓寄存器的數(shù)量為兩個(gè),分別為設(shè)置在第2級(jí)倒數(shù)第1行的第一兵乓寄存器和第3級(jí)倒數(shù)第2行的第二乒乓寄存器,所述第一乒乓寄存器的輸出分別與第3級(jí)中的第1行、第3行和第4行運(yùn)算元素相連,所述第二乒乓寄存器的輸出分別與第4級(jí)中的第1行和第4行運(yùn)算元素相連;
[0034]三輸入加法器的數(shù)量為兩個(gè),分別為設(shè)置在第3級(jí)倒數(shù)第2行的第一三輸入加法器和第3級(jí)倒數(shù)第4行的第二三輸入加法器,所述第一三輸入加法器的輸入分別與第2級(jí)中的第1行、第2行和第4行運(yùn)算元素相連,所述第二三輸入加法器的輸入分別與第2級(jí)中的第2行、第3行和第4行運(yùn)算元素相連;
[0035]第2級(jí)運(yùn)算元素為二輸入加法器,數(shù)量為四個(gè),其輸入分別與第1級(jí)乘法器相連;
[0036]所述第4級(jí)第1行運(yùn)算元素為所述末級(jí)三輸入加法器,其中兩個(gè)輸入分別與第3級(jí)中第1行和第3行運(yùn)算元素相連,第三輸入為前一時(shí)刻所述第三三輸入加法器的輸出送至所述第三三輸入加法器的輸入端;
[0037]附加寄存器的數(shù)量為5,分別設(shè)置在第3級(jí)第2行、第3級(jí)第4行、第4級(jí)第2行、第4級(jí)第3行和第4級(jí)第4行。
[0038]根據(jù)第一方面的第五種可能的實(shí)現(xiàn)方式,在第一方面的第十種可能的實(shí)現(xiàn)方式中:
[0039]N=16, M=5 ;
[0040]乒乓寄存器的數(shù)量為三個(gè),分別為設(shè)置在第2級(jí)倒數(shù)第1行的第一兵乓寄存器、第3級(jí)倒數(shù)第2行的第二兵乓寄存器和第4級(jí)倒數(shù)第4行的第三兵乓寄存器,其中第一乒乓寄存器的輸出分別與第3級(jí)中第1行、第3級(jí)第7行和第3級(jí)第8行設(shè)置的附加寄存器相連,第二乒乓寄存器的輸出分別與第4級(jí)中第1行、第4級(jí)第5行和第4級(jí)第7行設(shè)置的附加寄存器相連,第三乒乓寄存器的輸出分別與第5級(jí)中第1行加法器和第5級(jí)第5行設(shè)置的附加寄存器相連;
[0041]三輸入加法器的數(shù)量為六個(gè),其中4個(gè)分別設(shè)置在第3級(jí)中的第1、3、5和7行,其中2個(gè)分別設(shè)置在第4級(jí)中的第1和5行,所述三輸入加法器的輸入分別與所述三輸入加法器的前一級(jí)運(yùn)算元素中行數(shù)最接近的運(yùn)算元素的寄存器相連;
[0042]第2級(jí)運(yùn)算元素為二輸入加法器;
[0043]第5級(jí)第1行運(yùn)算元素為一個(gè)二輸入加法器;
[0044]所述附加寄存器的數(shù)量為十七個(gè),其中四個(gè)分別設(shè)置在第3級(jí)中的第2、4、6和8行,其中六個(gè)分別設(shè)置在第4級(jí)中的第2、3、4、6、7和8行,其余七個(gè)分別設(shè)在第5級(jí)中除第1行之外。
[0045]根據(jù)第一方面的第五種可能的實(shí)現(xiàn)方式,在第一方面的第十一種可能的實(shí)現(xiàn)方式中:
[0046]N=16,M=5;
[0047]乒乓寄存器的數(shù)量為三個(gè),分別為設(shè)置在第2級(jí)倒數(shù)第1行的第一兵乓寄存器、第3級(jí)倒數(shù)第2行的第二兵乓寄存器和第4級(jí)倒數(shù)第4行的第三兵乓寄存器,其中第一乒乓寄存器的輸出分別與第3級(jí)中第1行、第3級(jí)第7行和第3級(jí)第8行設(shè)置的附加寄存器相連,第二乒乓寄存器的輸出分別與第4級(jí)中第1行、第4級(jí)第5行和第4級(jí)第7行設(shè)置的附加寄存器相連,第三乒乓寄存器的輸出分別與第5級(jí)中第1行加法器和第5級(jí)第5行設(shè)置的附加寄存器相連;
[0048]三輸入加法器的數(shù)量為六個(gè),其中4個(gè)分別設(shè)置在第3級(jí)中的第1、3、5和7行,其中2個(gè)分別設(shè)置在第4級(jí)中的第1和5行,所述三輸入加法器的輸入分別與所述三輸入加法器的前一級(jí)運(yùn)算元素中行數(shù)最接近的運(yùn)算元素的寄存器相連;
[0049]第2級(jí)運(yùn)算元素為二輸入加法器;
[0050]所述第5級(jí)第1行運(yùn)算元素為所述末級(jí)三輸入加法器,新增第三輸入為前一時(shí)刻該所述第5級(jí)的三輸入加法器的輸出送至所述三輸入加法器的輸入端;
[0051]所述附加寄存器的數(shù)量為十七個(gè),其中四個(gè)分別設(shè)置在第3級(jí)中的第2、4、6和8行,其中六個(gè)分別設(shè)置在第4級(jí)中的第2、3、4、6、7和8行,其余七個(gè)分別設(shè)在第5級(jí)中除第1行之外。
[0052]本發(fā)明實(shí)施例提供的乘累加器,通過(guò)所述乒乓寄存器,可以同時(shí)存儲(chǔ)所連接加法器在至少兩個(gè)運(yùn)算時(shí)刻輸出的各相加結(jié)果,并將各相加結(jié)果分別向后一級(jí)的加法器輸出或直接作為乘累加器的結(jié)果輸出,以實(shí)現(xiàn)不同維度的向量乘法或矩陣乘法并存時(shí)自適應(yīng)乘累力口,提高了效率,解決現(xiàn)有MAC架構(gòu)對(duì)于當(dāng)輸入向量的維度是8、4和2隨機(jī)出現(xiàn)時(shí)效率降低的問(wèn)題,同時(shí)能支持更高維度的向量或矩陣乘累加運(yùn)算。
【專利附圖】
【附圖說(shuō)明】
[0053]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0054]圖1為現(xiàn)有的乘累加器的架構(gòu)示意圖;
[0055]圖2a為本發(fā)明乘累加器實(shí)施例一的結(jié)構(gòu)示意圖;
[0056]圖2b為本發(fā)明乘累加器實(shí)施例二的時(shí)序圖;
[0057]圖3a為本發(fā)明乘累加器實(shí)施例二的結(jié)構(gòu)示意圖;
[0058]圖3b為本發(fā)明乘累加器實(shí)施例二的時(shí)序圖;
[0059]圖4為本發(fā)明乘累加器實(shí)施例三的結(jié)構(gòu)示意圖;
[0060]圖5為本發(fā)明乘累加器實(shí)施例四的結(jié)構(gòu)示意圖;
[0061]圖6為本發(fā)明乘累加器實(shí)施例五的結(jié)構(gòu)示意圖;
[0062]圖7a為本發(fā)明乘累加器實(shí)施例七的運(yùn)算元素結(jié)構(gòu)圖;
[0063]圖7b為本發(fā)明乘累加器實(shí)施例七的橫向拓?fù)鋱D;
[0064]圖7c為本發(fā)明乘累加器實(shí)施例七的又一橫向拓?fù)鋱D;
[0065]圖7d為本發(fā)明乘累加器實(shí)施例七的縱向拓?fù)鋱D。
【具體實(shí)施方式】
[0066]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0067]本發(fā)明實(shí)施例提供一種乘累加器,包括Μ級(jí)運(yùn)算元素列,其中,第1級(jí)運(yùn)算元素列中包括Ν個(gè)運(yùn)算元素,所述Ν個(gè)運(yùn)算元素均為乘法器,第2至第Μ級(jí)運(yùn)算元素列中的運(yùn)算元素均為加法器,第i_l級(jí)運(yùn)算元素列中的運(yùn)算元素每?jī)蓚€(gè)劃分為一組,第i級(jí)運(yùn)算元素列中的每個(gè)加法器與第i_l級(jí)運(yùn)算元素列中的一組運(yùn)算元素相連,用于對(duì)所連接的運(yùn)算元素的運(yùn)算結(jié)果進(jìn)行求和,任一所述乘法器或所述加法器連接有寄存器,所述寄存器用于在每個(gè)運(yùn)算時(shí)刻記錄所述乘法器或所述加法器的運(yùn)算結(jié)果并輸出,Μ為大于等于2的自然數(shù),Ν=2μ^, i為自然數(shù)且l〈i ( Μ。
[0068]本實(shí)施例的乘累加器中,與第一加法器連接的所述寄存器為乒乓寄存器,所述第一加法器為所述加法器中的至少一個(gè)加法器,所述乒乓寄存器用于存儲(chǔ)所述第一加法器在至少兩個(gè)運(yùn)算時(shí)刻分別輸出的相加結(jié)果,并將所述相加結(jié)果在對(duì)應(yīng)的運(yùn)算時(shí)刻分別輸出給后一級(jí)運(yùn)算元素列的加法器或作為所述乘累加器的運(yùn)算結(jié)果輸出,所述相加結(jié)果為所述第一加法器的前一級(jí)運(yùn)算元素列中的至少兩個(gè)運(yùn)算元素分別輸出的運(yùn)算結(jié)果之和。
[0069]該乘累加器可以作為加速器,也可以集成在處理器的數(shù)據(jù)運(yùn)算元素中。本發(fā)明實(shí)施例通過(guò)設(shè)置兵乓寄存器,可以充分利用空閑的乘法器,適應(yīng)多維度向量的乘法計(jì)算。
[0070]其中,上述方案中所述乒乓寄存器實(shí)現(xiàn)存儲(chǔ)多個(gè)運(yùn)算時(shí)刻的相加結(jié)果,可以通過(guò)設(shè)置一個(gè)有兩個(gè)以上存儲(chǔ)位置的寄存器來(lái)實(shí)現(xiàn),或者也可以包括至少兩個(gè)寄存器,兵乓寄存器中的各個(gè)寄存器用于在不同運(yùn)算時(shí)刻記錄運(yùn)算結(jié)果并輸出。多個(gè)寄存器即可在多個(gè)運(yùn)算時(shí)刻分別記錄運(yùn)算結(jié)果并輸出。
[0071]進(jìn)一步地,所述乒乓寄存器是根據(jù)所述第1級(jí)運(yùn)算元素列中,與所述乒乓寄存器對(duì)應(yīng)的,乘法器所計(jì)算的元素對(duì)應(yīng)的向量的維數(shù),自動(dòng)將所述相加結(jié)果緩存至下一運(yùn)算時(shí)亥IJ,從而在對(duì)應(yīng)的運(yùn)算時(shí)刻,輸出給后一級(jí)運(yùn)算元素列的加法器或作為所述乘累加器的運(yùn)算結(jié)果輸出,詳細(xì)原理請(qǐng)參考圖2a和圖2b的內(nèi)容。
[0072]本實(shí)施例中的乘累加器結(jié)構(gòu)圖可參考圖2a,圖2a為本發(fā)明乘累加器實(shí)施例一的結(jié)構(gòu)示意圖,圖2a中乒乓寄存器設(shè)在與加法器A122相連的節(jié)點(diǎn)B處。
[0073]本實(shí)施例中,由于設(shè)置了兵乓寄存器,可以在乒乓寄存器中同時(shí)存儲(chǔ)兩個(gè)運(yùn)算時(shí)刻輸出的各相加結(jié)果,并將各相加結(jié)果在對(duì)應(yīng)的運(yùn)算時(shí)刻分別向后一級(jí)的運(yùn)算元素輸出,從而使乘累加器可以在本次運(yùn)算還未完成但是只要有乘法器是空閑的就可以進(jìn)行下次數(shù)據(jù)的乘法運(yùn)算,提高了乘累加器的效率。
[0074]上述實(shí)施例基礎(chǔ)上,乘累加器還可優(yōu)選包括至少一個(gè)附加寄存器,所述附加寄存器設(shè)置于第3級(jí)至第Μ級(jí)運(yùn)算元素列中,且每級(jí)運(yùn)算元素列中的附加寄存器與加法器數(shù)量之和等于Ν/2,各附加寄存器與前級(jí)運(yùn)算元素或前級(jí)附加寄存器相連,用于直接獲取前級(jí)的輸出結(jié)果并輸出。
[0075]附加寄存器不進(jìn)行相乘或相加的運(yùn)算,只用于在該運(yùn)算時(shí)刻將前級(jí)的輸出結(jié)果直接輸出,所以根據(jù)需要,可以在每列運(yùn)算元素之外剩余的部分或全部位置均設(shè)置附加寄存器,這取決于前級(jí)有多少需直接輸出的結(jié)果。
[0076]在本發(fā)明實(shí)施例的各方案中,兵乓寄存器的位置優(yōu)選是,設(shè)置在第2級(jí)至第Μ-l級(jí)運(yùn)算元素列中,且設(shè)置在第m級(jí)的乒乓寄存器與該級(jí)倒數(shù)第2~(m-2)行的加法器連接,其中,2彡m彡M-1。
[0077]按照上述規(guī)則確定兵乓寄存器的位置所在的級(jí)數(shù)和行數(shù),能夠在不同運(yùn)算時(shí)刻同時(shí)存儲(chǔ)不同維數(shù)的矢量相乘后相加的結(jié)果。下面通過(guò)典型實(shí)例進(jìn)行詳細(xì)介紹。
[0078]實(shí)施例一
[0079]圖2a為本發(fā)明乘累加器實(shí)施例一的結(jié)構(gòu)示意圖,本實(shí)施例以上述技術(shù)方案為基礎(chǔ),且可以參照?qǐng)D1,在圖1所示乘累加器的基礎(chǔ)上進(jìn)行了改進(jìn)。如圖2a所示,本實(shí)施例所述乘累加器支持的最大輸入數(shù)據(jù)維度N=8,運(yùn)算元素列的級(jí)數(shù)M=4。
[0080]所述乒乓寄存器的數(shù)量為一個(gè),設(shè)置在第3級(jí)第2行,即B點(diǎn)處加法器所連接的寄存器為兵乓寄存器。所述乒乓寄存器所連接的加法器A122的輸入分別與第2級(jí)中的第3行和第4行加法器相連,該兵乓寄存器用于分別存儲(chǔ)加法器A122兩個(gè)時(shí)刻輸出的兩個(gè)相加結(jié)果,其中一個(gè)輸出結(jié)果用于提供給第4級(jí)加法器A131,另一個(gè)輸出結(jié)果用于通過(guò)附加寄存器R132直接輸出;
[0081]所述附加寄存器R132的數(shù)量為一個(gè),與上級(jí)所述乒乓寄存器相連,獲取所述乒乓寄存器的輸出結(jié)果并輸出。
[0082]如圖2a所示,本實(shí)施例具體包括:第1級(jí)運(yùn)算元素的行數(shù)為8,每行運(yùn)算元素由1個(gè)乘法器及所述乘法器后連接的寄存器組成,如圖2a中乘法器肌1、112、113、114、1115、M16、M17和M18 ;第2級(jí)運(yùn)算元素的行數(shù)為4,每行運(yùn)算元素由1個(gè)加法器及所述加法器后連接的寄存器組成,如圖2a中的加法器A111、A112、A113和A114 ;第3級(jí)運(yùn)算元素的行數(shù)為2,其中第1行運(yùn)算元素為1個(gè)加法器及所述加法器后連接的寄存器組成,如圖2a中加法器A121,第2行運(yùn)算元素為1個(gè)加法器及所述加法器后連接的乒乓寄存器組成,如圖2a中加法器A122 ;第4級(jí)運(yùn)算元素行數(shù)為2,其中第1行運(yùn)算元素為1個(gè)加法器及所述加法器后連接的寄存器組成,如圖2a中加法器A131,第2行運(yùn)算元素為1個(gè)附加寄存器R132。
[0083]每個(gè)乘法器和每個(gè)加法器分別連接有寄存器,所述寄存器用于在每個(gè)運(yùn)算時(shí)刻記錄運(yùn)算結(jié)果并輸出,所述乘法器及與所述乘法器連接的寄存器構(gòu)成一個(gè)運(yùn)算元素,所述加法器及與所述加法器連接的寄存器構(gòu)成一個(gè)運(yùn)算元素。
[0084]為方便說(shuō)明,本實(shí)施例以8維向量和4維向量隨機(jī)共存進(jìn)行乘累加運(yùn)算為例,其時(shí)序關(guān)系圖如圖2b所示。例如首先輸入的是2個(gè)8維向量X和Y,向量X中的元素X中含xl、x2、x3、x4、x5、x6、x7 和 x8 這 8 個(gè)元素,向量 Y 中含 yl、y2、y3> y4> y5> y6> y7 和 y8 這 8 個(gè)元素,乘累加器要完成的運(yùn)算是 xl X y 1+χ2 X y2+x3 X y3+x4 X y4+x5 X y5+x6 X y6+x7 X y7+x8Xy80
[0085]在tl運(yùn)算時(shí)刻,參考圖2a,第1級(jí)運(yùn)算元素完成輸入數(shù)據(jù)的乘法運(yùn)算,即乘法器皿11完成11\71,乘法器肌2完成12\72,依次類推乘法器M18完成x8Xy8。每個(gè)乘法器的結(jié)果通過(guò)與該乘法器相連接的寄存器輸出至第2級(jí)加法器。
[0086]乘法器Mil和M12的結(jié)果通過(guò)第2級(jí)加法器A111完成相加運(yùn)算,乘法器M13和M14的結(jié)果通過(guò)第2級(jí)加法器A112完成相加運(yùn)算,加法器A111的結(jié)果通過(guò)與A111相連接的寄存器輸出至第3級(jí)加法器A121的輸入端,加法器A112的結(jié)果通過(guò)與加法器A112相連接的寄存器輸出至加法器A121的輸入端,如圖2a中節(jié)點(diǎn)A處完成了xl X y 1+χ2 X y2+x3 X y3+x4X y4的結(jié)果,為方便說(shuō)明將所述結(jié)果記為8a。
[0087]同理圖2a中8節(jié)點(diǎn)完成15\75+16\76+17\77+18\78,在當(dāng)前運(yùn)算時(shí)刻,加法器八122所連接的乒乓寄存器存儲(chǔ)的是15\75+妨\76+17\77+18\78的結(jié)果,為方便說(shuō)明將所述結(jié)果記為8b。
[0088]如圖2b所示,在tl時(shí)刻,A點(diǎn)和B點(diǎn)的寄存器存儲(chǔ)的結(jié)果分別為8a和8b。
[0089]加法器A121的結(jié)果和加法器A122的結(jié)果輸出至第4級(jí)第1行加法器A131的輸入端中,加法器 A131 完成 xl X yl+x2 X y2+x3 X y3+x4Xy4+x5 X y5+x6 X y6+x7 X y7+x8 X y8的結(jié)果,并通過(guò)與加法器A131相連接的寄存器輸出,即形成C點(diǎn)處的相加結(jié)果,如圖2b所示。此時(shí)刻從C點(diǎn)的寄存器就可獲得8維向量的乘累加結(jié)果,這樣便完成了整個(gè)8維向量乘累加運(yùn)算。
[0090]本次運(yùn)算中,所有的乘法器使用率是100%。
[0091]如果第2個(gè)輸入是兩個(gè)4維向量,即t2運(yùn)算時(shí)刻輸入的是兩個(gè)4維向量,則只需要通過(guò)乘法器M11、M12、M13和M14完成向量的乘累加運(yùn)算,通過(guò)加法器A131輸出結(jié)果,SP在A點(diǎn)寄存器處的結(jié)果為“4”,如圖2b所示。其余乘法器可在該運(yùn)算時(shí)刻并行處理下個(gè)數(shù)據(jù)的其中4個(gè)元素相乘累加。
[0092]例如這時(shí)第3個(gè)輸入是兩個(gè)8維向量XI和Y1,那么XI中的前4個(gè)元素和Y1中的前4個(gè)元素可以在t2運(yùn)算時(shí)刻,通過(guò)M15至M18完成運(yùn)算,其結(jié)果存儲(chǔ)在加法器A122相連的乒乓寄存器中,即B點(diǎn)處的乒乓寄存器記錄t2運(yùn)算時(shí)刻的結(jié)果8a,這時(shí)所述乒乓寄存器中只存儲(chǔ)8a,此時(shí)并不輸出8a,所述乒乓寄存器中在tl運(yùn)算時(shí)刻輸入時(shí)存儲(chǔ)的8b已經(jīng)輸出。
[0093]XI中的后4個(gè)元素和Y1中的后4個(gè)元素在t3運(yùn)算時(shí)刻通過(guò)乘法器Mil至M14完成運(yùn)算,其結(jié)果存儲(chǔ)在加法器A121相連的A點(diǎn)寄存器中,該結(jié)果記為8b。在t3時(shí)刻,B點(diǎn)乒乓寄存器在t2運(yùn)算時(shí)刻存儲(chǔ)的8a和A點(diǎn)寄存器存儲(chǔ)的8b —起送至加法器A131中相加并通過(guò)與A131相連的C點(diǎn)寄存器輸出。
[0094]如果第4個(gè)輸入是兩個(gè)8維向量X2和Y2,和上述過(guò)程同理,向量X2和Y2前4個(gè)元素通過(guò)乘法器M15、M16、M17和M18完成運(yùn)算,其結(jié)果記為8a,8a在與加法器A122相連接的B點(diǎn)乒乓寄存器中存儲(chǔ),但此時(shí)不能輸出,需要等X2和Y2中后4個(gè)元素運(yùn)算完,向量X2和Y2后4個(gè)元素通過(guò)乘法器M11、M12、M13和M14完成運(yùn)算,其結(jié)果記為8b,8b存儲(chǔ)在與加法器A121相連的A點(diǎn)寄存器中,這時(shí)乘法器M15、M16、M17和M18是空閑的,如果第5個(gè)輸入是4維向量,那么該4維向量可以使用乘法器M15、M16、M17和M18進(jìn)行運(yùn)算,其結(jié)果記為4,存儲(chǔ)在與加法器A122相連的B點(diǎn)乒乓寄存器中,這時(shí)所述乒乓寄存器中在上一時(shí)刻已經(jīng)存儲(chǔ)了 8a,8a等待8b到來(lái)時(shí)一起輸出至加法器A131,從而完成8維向量X2和Y2的乘累加運(yùn)算。運(yùn)算結(jié)果4等8b輸出后通過(guò)附加寄存器R132直接輸出,從而完成該4維向量的運(yùn)笪
[0095]上述過(guò)程中,無(wú)論下次輸入數(shù)據(jù)是8維還是4維,乘法器的使用沒(méi)有空閑時(shí)刻,效率都是100%。
[0096]本實(shí)施例,通過(guò)在乘累加器中使用所述乒乓寄存器,同時(shí)存儲(chǔ)兩個(gè)時(shí)刻的運(yùn)算結(jié)果并依此輸出,從而實(shí)現(xiàn)了乘法器100%高效處理,解決現(xiàn)有技術(shù)中乘累加器效率低的問(wèn)題。
[0097]以圖2a和2b的乘累加器工作原理可知,兵乓寄存器用于在所對(duì)應(yīng)的乘法器和加法器進(jìn)行運(yùn)算后,將至少兩個(gè)運(yùn)算時(shí)刻獲得的運(yùn)算結(jié)果逐一進(jìn)行存儲(chǔ),以便該運(yùn)算結(jié)果可利用至下一運(yùn)算時(shí)刻。以兩個(gè)運(yùn)算時(shí)刻為例,兵乓寄存器在第一運(yùn)算時(shí)刻存儲(chǔ)第一運(yùn)算結(jié)果;在第二運(yùn)算時(shí)刻,自動(dòng)將第一運(yùn)算結(jié)果緩存,同時(shí)也可獲取第第二運(yùn)算時(shí)刻上一級(jí)提供的第二運(yùn)算結(jié)果。由此,第一運(yùn)算結(jié)果既可在第一運(yùn)算時(shí)刻使用,也可以在第二運(yùn)算時(shí)刻使用,具體是直接輸出還是提供給下一級(jí)加法器,則根據(jù)具體的向量維度運(yùn)算需求而定。可以通過(guò)在不同運(yùn)算時(shí)刻向不同的乘法器輸入向量的不同部分來(lái)控制兵乓寄存器存儲(chǔ)哪個(gè)運(yùn)算結(jié)果。由此,該乘累加器架構(gòu)可以根據(jù)不同的維度組合自動(dòng)配置加法數(shù)據(jù)流向。一組處理可跨越至少2個(gè)處理周期,兵乓寄存器自動(dòng)存儲(chǔ)上一處理周期的結(jié)果用于下一處理周期的處理,支持所有乘法器全利用并行輸出多路結(jié)果。
[0098]實(shí)施例二
[0099]圖3a為本發(fā)明乘累加器實(shí)施例二的結(jié)構(gòu)示意圖。本實(shí)施例是在上述實(shí)施例基礎(chǔ)上,對(duì)乘累加器的結(jié)構(gòu)做出改動(dòng)以實(shí)現(xiàn)8維、4維和2維隨機(jī)出現(xiàn)時(shí)乘累加器高效率運(yùn)算,本實(shí)施例優(yōu)選采用以下結(jié)構(gòu):
[0100]所述兵乓寄存器設(shè)置在第2級(jí)至第Μ-l級(jí)運(yùn)算元素列中,且設(shè)置在第m級(jí)的乒乓寄存器與該級(jí)倒數(shù)第2~ (m-2)行的加法器連接,其中,2彡m彡M-1。
[0101]并且,本實(shí)施例中,優(yōu)選是至少一個(gè)加法器為多輸入加法器,所述多輸入加法器與前級(jí)的三個(gè)以上運(yùn)算元素分別相連,用于將所述三個(gè)以上運(yùn)算元素的運(yùn)算結(jié)果相加。采用多輸入加法器可以計(jì)算多個(gè)前級(jí)運(yùn)算結(jié)果之和,能夠?qū)⒏鞔芜\(yùn)算結(jié)果進(jìn)行靈活組合,滿足乘累加器對(duì)向量計(jì)算的需求。
[0102]該多輸入加法器典型為三輸入加法器,每個(gè)三輸入加法器與前級(jí)的三行運(yùn)算元素分別相連,所述三輸入加法器設(shè)置在第3級(jí)至第Μ-l級(jí)運(yùn)算元素列中,設(shè)置在第m級(jí)的三輸入加法器位于倒數(shù)第L行,其中L=(2~ (m-2)) Xn, L的取值范圍滿足(2~ (m-2)) Xn ( Ν/2,其中,η彡1,3彡m彡M-1 ;
[0103]所述三輸入加法器與上一級(jí)加法器中行數(shù)最接近的三個(gè)運(yùn)算元素分別相連。
[0104]需要說(shuō)明的,所述行數(shù)最接近是按最后1行和第1行相接計(jì)算,例如和第1行行數(shù)最接近的是第1行、第2行和第4行,而不是第1行、第2行和第3行,和第3行行數(shù)最接近的是第2行、第3行和第4行。
[0105]其它加法器為二輸入加法器,每個(gè)二輸入加法器與前級(jí)的兩行運(yùn)算元素分別相連。
[0106]具體地,參考圖3a,本實(shí)施例中所述乘累加器支持的最大輸入數(shù)據(jù)維度N=8,運(yùn)算元素列的級(jí)數(shù)M=4。
[0107]乒乓寄存器的數(shù)量為兩個(gè),參考圖3a,其中第一乒乓寄存器與第2級(jí)倒數(shù)第1行的加法器A214相連,第二兵乓寄存器與第3級(jí)倒數(shù)第2行的加法器A223相連,設(shè)置在加法器A214相連的第一兵兵寄存器的輸出分別與三輸入加法器A221、三輸入加法器A223和附加寄存器R224相連,其中一個(gè)時(shí)刻的運(yùn)算結(jié)果同時(shí)輸出給了三輸入加法器A221和附加寄存器R224。設(shè)置在加法器A223相連的第二乒乓寄存器的輸出分別與加法器A231和附加寄存器R233相連。
[0108]三輸入加法器的數(shù)量為兩個(gè),第一三輸入加法器為設(shè)置在第3級(jí)倒數(shù)第2行的三輸入加法器A223,第二三輸入加法器為設(shè)置在第3級(jí)倒數(shù)第4行的三輸入加法器A221,三輸入加法器A223的輸入分別為加法器A212、加法器A213和加法器A214相連的寄存器,三輸入加法器A221的輸入分別為加法器A211、加法器A212和加法器A214相連的寄存器。
[0109]第2級(jí)運(yùn)算元素為二輸入加法器,數(shù)量為四個(gè),如圖3a中加法器A211、加法器A212、加法器A213和加法器A214,加法器A211連接乘法器M21和乘法器M22相連的寄存器,以完成對(duì)乘法器M21的結(jié)果和乘法器M22的結(jié)果進(jìn)行相加運(yùn)算,加法器A212、加法器A213和加法器A214的作用類似。
[0110]第4級(jí)第1行運(yùn)算元素為加法器A231,是一個(gè)二輸入加法器,其輸入分別與第3級(jí)中第1行和第3行運(yùn)算元素相連,其結(jié)果直接輸出;
[0111]所述附加寄存器的數(shù)量為5,如圖3a中附加寄存器R222、附加寄存器R224、附加寄存器R232、附加寄存器R233和附加寄存器R234。
[0112]為方便說(shuō)明,本實(shí)施例以輸入數(shù)據(jù)8維、4維及2維隨機(jī)出現(xiàn)進(jìn)行說(shuō)明,例如輸入數(shù)據(jù)順序依次是8維、4維、2維、8維和4維的向量。圖3b為本發(fā)明乘累加器實(shí)施例二的時(shí)序圖,結(jié)合圖3a和圖3b對(duì)處理輸入數(shù)據(jù)的過(guò)程進(jìn)行詳細(xì)說(shuō)明,具體如下:
[0113]在t4運(yùn)算時(shí)刻,對(duì)于第1個(gè)輸入的兩個(gè)8維向量X3和Y3,乘法器M21至M28所有的乘法器都參與運(yùn)算。在t5運(yùn)算時(shí)刻所有乘法器的結(jié)果送至下一級(jí)的加法器A211至A214,參考圖3b中節(jié)點(diǎn)H、1、J、K,其中節(jié)點(diǎn)Η處的寄存器存儲(chǔ)的數(shù)據(jù)h81為X3和Y3中第1個(gè)元素和第2個(gè)元素分別對(duì)應(yīng)相乘后累加的結(jié)果,節(jié)點(diǎn)I處的寄存器存儲(chǔ)的數(shù)據(jù)i81為X3和Y3中第3個(gè)元素和第4個(gè)元素分別對(duì)應(yīng)相乘后累加的結(jié)果,依次類推j81和k81。在t6運(yùn)算時(shí)刻數(shù)據(jù)h81和i81通過(guò)加法器A221相加并存儲(chǔ)在節(jié)點(diǎn)A1處的寄存器,也就是加法器A221相連的寄存器,依次類推數(shù)據(jù)j81和k81相加的結(jié)果存儲(chǔ)在節(jié)點(diǎn)B1處的乒乓寄存器。在t7運(yùn)算時(shí)刻節(jié)點(diǎn)A1和節(jié)點(diǎn)B1處的數(shù)據(jù)通過(guò)加法器A231完成相加運(yùn)算送至節(jié)點(diǎn)C1處的寄存器,即X3和Y3的乘累加結(jié)果在A231中完成最后一次相加運(yùn)算并通過(guò)A231相連的寄存器輸出。
[0114]然后,在t8運(yùn)算時(shí)刻,當(dāng)?shù)?個(gè)輸入數(shù)據(jù)是兩個(gè)4維向量X4和Y4時(shí),通過(guò)乘法器M21、M22、M23和M24完成乘累加運(yùn)算,在t9運(yùn)算時(shí)刻分別送至下級(jí)運(yùn)算元素,即圖3a中的加法器A211和加法器A212,圖3b中節(jié)點(diǎn)Η處存儲(chǔ)的是加法器A211的結(jié)果h41,節(jié)點(diǎn)I處存儲(chǔ)的是加法器A212的結(jié)果i41。在tlO運(yùn)算刻h41和i41通過(guò)加法器A221完成相加運(yùn)算并存儲(chǔ)在與加法器A221相連的寄存器中,即圖3b中的節(jié)點(diǎn)A1。在til運(yùn)算時(shí)刻通過(guò)加法器A231相連的寄存器輸出結(jié)果,即節(jié)點(diǎn)C1輸出。需要說(shuō)明的是加法器A231的另一個(gè)輸入來(lái)源是前級(jí)加法器A223相連的乒乓寄存器,所述加法器A223相連的乒乓寄存器在這時(shí)刻沒(méi)有存儲(chǔ)任何數(shù)據(jù),因此C1輸出的是向量X4和Y4乘累加的結(jié)果。
[0115]在t8運(yùn)算時(shí)刻由于乘法器M25、M26、M27和M28這時(shí)空閑,可以同時(shí)進(jìn)行下一個(gè)輸入數(shù)據(jù)的處理,即乘法器M25、M26完成2維向量X5和Y5的乘法運(yùn)算,在t9運(yùn)算時(shí)刻將其乘法結(jié)果通過(guò)加法器A213完成相加運(yùn)算,結(jié)果記為j_2,j2在tlO運(yùn)算時(shí)刻送至加法器A223并存儲(chǔ)在加法器A223相連的乒乓寄存器中,在til運(yùn)算時(shí)刻通過(guò)附加器存器R233輸出。
[0116]在t8運(yùn)算時(shí)刻,還有乘法器M27和乘法器M28是空閑的,因此可以處理8維向量X6和Y6的前兩個(gè)元素相乘,在t9運(yùn)算時(shí)刻將其乘法結(jié)果通過(guò)加法器A214完成相加運(yùn)算,結(jié)果記為h82,存儲(chǔ)在與加法器A214相連的乒乓寄存器中,即圖3b節(jié)點(diǎn)K處,h82并不在下一次運(yùn)算時(shí)刻輸出而是等待X6和Y6中其他元素也完成乘法運(yùn)算的時(shí)候再輸出至下一級(jí)運(yùn)算元素。等待tl2運(yùn)算時(shí)刻乘法器M21和乘法器M22分別完成X6和Y6的第3個(gè)和第4個(gè)元素分別對(duì)應(yīng)相乘,乘法器M23和乘法器M24分別完成X6和Y6的第5個(gè)和第6個(gè)元素分別對(duì)應(yīng)相乘,乘法器M25和乘法器M26分別完成X6和Y6的第7個(gè)和第8個(gè)元素分別對(duì)應(yīng)相乘,同時(shí),在tl2運(yùn)算時(shí)刻乘法器M27和乘法器M28已空閑可以完成下個(gè)輸入數(shù)據(jù)兩個(gè)4維向量X7和Y7的前2個(gè)元素對(duì)應(yīng)相乘,在tl3運(yùn)算時(shí)刻,將乘法器M21至M28的結(jié)果分別送至下級(jí)運(yùn)算元素,通過(guò)加法器A211至A214完成相加運(yùn)算,其結(jié)果為圖3b節(jié)點(diǎn)Η處的?82,節(jié)點(diǎn)I處的j82,節(jié)點(diǎn)J處的k82,節(jié)點(diǎn)K處的h42。節(jié)點(diǎn)K為與加法器A214相連的乒乓寄存器,t9運(yùn)算時(shí)刻已存儲(chǔ)了 h82,tl3運(yùn)算時(shí)刻又送入了 h42,即在tl3運(yùn)算時(shí)刻同時(shí)存儲(chǔ)了 h82和h42兩個(gè)數(shù)據(jù)。其中,h82是X6和Y6的前2個(gè)元素相乘的結(jié)果,在tl4運(yùn)算時(shí)刻,h82和i82 —起送入三輸入加法器A221進(jìn)行相加運(yùn)算,其結(jié)果存儲(chǔ)在A1處;j82和k82 一起送入加法器A223進(jìn)行相加運(yùn)算,其結(jié)果存儲(chǔ)在B1處。等tl4運(yùn)算時(shí)刻A1處的數(shù)據(jù)和B1處的數(shù)據(jù)通過(guò)加法器A231進(jìn)行相加,然后在tl5運(yùn)算時(shí)刻通過(guò)與加法器A231相連的寄存器輸出,至此完成8維X6和Y6的乘累加結(jié)果。在tl6運(yùn)算時(shí)刻乘法器M21和乘法器M22完成X7和Y7后兩個(gè)元素相乘,將其相乘結(jié)果在tl7運(yùn)算時(shí)刻通過(guò)加法器A211進(jìn)行相加運(yùn)算,相加后的結(jié)果記為i42,等到tl8運(yùn)算時(shí)刻i42和節(jié)點(diǎn)K處的乒乓寄存器中存儲(chǔ)的h42 —起送至節(jié)點(diǎn)A1處完成相加運(yùn)算,在tl9運(yùn)算時(shí)刻通過(guò)節(jié)點(diǎn)C1輸出結(jié)果,至此完成4維X7和Y7的乘累加結(jié)果。
[0117]上述過(guò)程中,8個(gè)乘法器使用效率始終是100%,無(wú)需等本次數(shù)據(jù)完全處理完才處理下次數(shù)據(jù)的乘法,極大提高了乘累加器的效率。
[0118]本實(shí)施例,通過(guò)乘累加器中第2級(jí)運(yùn)算元素和第3級(jí)運(yùn)算元素中乒乓寄存器并增加附加寄存器輸出通路,及第3級(jí)運(yùn)算元素三輸入加法器,實(shí)現(xiàn)輸入數(shù)據(jù)當(dāng)8維、4維及2維隨機(jī)出現(xiàn)時(shí)乘法器100%效率的運(yùn)行,極大提高乘累加器的效率。
[0119]實(shí)施例三
[0120]圖4為本發(fā)明乘累加器實(shí)施例三的結(jié)構(gòu)示意圖。本實(shí)施例是在實(shí)施例二基礎(chǔ)上,不增加資源的情況下,通過(guò)將第4級(jí)二輸入加法器替換為三輸入加法器,如果輸入數(shù)據(jù)維度大于8維的時(shí)候,對(duì)輸入數(shù)據(jù)先每8個(gè)一組,通過(guò)第4級(jí)的三輸入加法器循環(huán)累加,從而支持16維的處理,具體結(jié)構(gòu)參考圖4,如下:
[0121]本實(shí)施例中所述乘累加器支持的最大輸入數(shù)據(jù)維度N=8,運(yùn)算元素列M=4 ;
[0122]乒乓寄存器的數(shù)量為兩個(gè),第一乒乓寄存器設(shè)置在第2級(jí)倒數(shù)第1行,第二乒乓寄存器設(shè)置在第3級(jí)倒數(shù)第2行,如圖4中加法器A314相連的乒乓寄存器和加法器A323相連的乒乓寄存器,設(shè)置在加法器A314相連的乒乓寄存器的輸出分別與三輸入加法器A321、三輸入加法器A323和附加寄存器R324相連,設(shè)置在加法器A323相連的乒乓寄存器的輸出分別與加法器A331和附加寄存器R333相連。
[0123]三輸入加法器的數(shù)量為兩個(gè),第一三輸入加法器為設(shè)置在第3級(jí)倒數(shù)第2行的三輸入加法器A323,第二三輸入加法器為設(shè)置在第3級(jí)倒數(shù)第4行的三輸入加法器A321,三輸入加法器A323的輸入分別為加法器A312、加法器A313和加法器A314相連的寄存器,三輸入加法器A321的輸入分別為加法器A311、加法器A312和加法器A314相連的寄存器。
[0124]第2級(jí)運(yùn)算元素為二輸入加法器,數(shù)量為四個(gè),如圖4中加法器A311、加法器A312、加法器A313和加法器A314,加法器A311連接乘法器M31和乘法器M32相連的寄存器,以完成對(duì)乘法器M31的結(jié)果和乘法器M32的結(jié)果進(jìn)行相加運(yùn)算,加法器A312、加法器A313和加法器A314的作用類似。
[0125]第4級(jí)第1行運(yùn)算元素為末級(jí)三輸入加法器A331,其中兩個(gè)輸入分別為加法器A321相連的寄存器和加法器A323相連的乒乓寄存器,第三輸入為前一時(shí)刻該加法器A331的輸出送至加法器A331的輸入端。
[0126]所述附加寄存器的數(shù)量為5,如圖4中附加寄存器R322、附加寄存器R324、附加寄存器R332、附加寄存器R333和附加寄存器R334。
[0127]本實(shí)施例增設(shè)了末級(jí)三輸入加法器的運(yùn)算元素,即第Μ級(jí)第1行的加法器為末級(jí)三輸入加法器,所述末級(jí)三輸入加法器的兩個(gè)輸入分別與前級(jí)的兩個(gè)加法器相連,所述末級(jí)三輸入加法器的輸出連接至所述末級(jí)三輸入加法器的第三個(gè)輸入。采用此技術(shù)方案,該乘累加器可以支持的最大維度可成倍增長(zhǎng)。末級(jí)三輸入加法器首先計(jì)算一個(gè)Ν維向量的乘累加結(jié)果,并通過(guò)三輸入加法器返回至輸入,而后下一個(gè)時(shí)刻計(jì)算另外Ν維向量的乘累加結(jié)果,后面的乘累加結(jié)果與返回的乘累加結(jié)果再次相加,即最終得到了 2Ν維向量的累加結(jié)果。
[0128]以16維為例進(jìn)行說(shuō)明。當(dāng)輸入數(shù)據(jù)大于8維時(shí),例如是16維,由于本實(shí)施例所述乘累加器支持的最大輸入數(shù)據(jù)維度Ν=8,在不增加運(yùn)算元素的情況下,通過(guò)對(duì)輸入數(shù)據(jù)先每8個(gè)分組,第1組中的8個(gè)數(shù)據(jù)乘累加的結(jié)果存在加法器Α331相連的寄存器中先不直接輸出,等待第2組中的8個(gè)數(shù)據(jù)要進(jìn)行最后一次乘累加,即要送入加法器Α331進(jìn)行相加時(shí),第1組數(shù)據(jù)的結(jié)果通過(guò)加法器Α331的輸出端送入加法器Α331的輸入端和第2組的數(shù)據(jù)一起相加,即通過(guò)第4級(jí)的三輸入加法器循環(huán)累加,從而支持16維的處理。
[0129]本實(shí)施例,通過(guò)第4級(jí)的三輸入加法器完成循環(huán)累加,從而在不增加運(yùn)算元素資源的情況下,支持16維的乘累加處理。
[0130]實(shí)施例四
[0131]圖5為本發(fā)明乘累加器實(shí)施例四的結(jié)構(gòu)示意圖。在上述實(shí)施例基礎(chǔ)上,本實(shí)施例增加乘法器、加法器和附加寄存器的個(gè)數(shù),可以一次就處理16維數(shù)據(jù)的乘累加運(yùn)算。具體結(jié)構(gòu)參考圖5。
[0132]本實(shí)施例中所述乘累加器支持的最大輸入數(shù)據(jù)維度Ν=16,運(yùn)算元素列Μ=5。
[0133]乒乓寄存器的數(shù)量為三個(gè),第一乒乓寄存器設(shè)置在第2級(jí)倒數(shù)第1行,第二乒乓寄存器設(shè)置在第3級(jí)倒數(shù)第2行,第三乒乓寄存器設(shè)置在第4級(jí)倒數(shù)第4行,參考如5中加法器Α418、加法器Α427和加法器Α435相連的乒乓寄存器,其中與加法器Α418相連的乒乓寄存器的輸出分別與加法器Α421、加法器Α427和附加寄存器R428相連,與加法器Α427相連的乒乓寄存器的輸出分別與加法器Α431、加法器Α435和附加寄存器R437相連,與加法器Α435相連的乒乓寄存器的輸出分別與加法器Α441和附加寄存器R445相連。
[0134]三輸入加法器的數(shù)量為六個(gè),如圖5中加法器Α421、加法器Α423、加法器Α425、力口法器Α427、加法器Α431和加法器Α435。所述三輸入加法器的輸入分別與所述三輸入加法器的前一級(jí)運(yùn)算元素中最接近的運(yùn)算元素的寄存器相連,參考圖5,其中加法器Α421的輸入分別是加法器Α411、加法器Α412和加法器Α418相連的寄存器,加法器Α423的輸入分別是加法器A412、加法器A413和加法器A414相連的寄存器,加法器A425的輸入分別是加法器A414、加法器A415和加法器A416相連的寄存器,加法器A427的輸入分別是加法器A416、加法器A417和加法器A418相連的寄存器,加法器A431的輸入分別是加法器A421、加法器A423和加法器A427相連的寄存器,加法器A435的輸入分別是加法器A423、加法器A425和加法器A427相連的寄存器。
[0135]第2級(jí)運(yùn)算元素為二輸入加法器,如圖5中的加法器A411、加法器A412、加法器A413、加法器A414、加法器A415、加法器A416、加法器A417和加法器A418。
[0136]第5級(jí)第1行運(yùn)算元素為一個(gè)二輸入加法器,如圖5中的加法器A441。
[0137]所述附加寄存器的數(shù)量為十七個(gè),參考圖5中的第3級(jí)運(yùn)算元素中的附加寄存器R422、附加寄存器R424、附加寄存器R426和附加寄存器R428,第4級(jí)運(yùn)算元素中的附加寄存器R432、附加寄存器R433、附加寄存器R434、附加寄存器R436、附加寄存器R437和附加寄存器R438,第5級(jí)運(yùn)算元素中的附加寄存器R442、附加寄存器R443、附加寄存器R444、附加寄存器R445、附加寄存器R446、附加寄存器R447和附加寄存器R448。
[0138]本實(shí)施例,通過(guò)增加乘法器、加法器和附加寄存器個(gè)數(shù),可以一次完成16維數(shù)據(jù)的乘累加運(yùn)算,同時(shí)通過(guò)乒乓寄存器可以高效率處理多維數(shù)據(jù)隨機(jī)共存時(shí)乘累加效率,原理和上述實(shí)施例一樣,此處不再贅述。
[0139]實(shí)施例五
[0140]圖6為本發(fā)明乘累加器實(shí)施例五的結(jié)構(gòu)示意圖。本實(shí)施例是在上述實(shí)施例五基礎(chǔ)上,不增加資源的情況下,通過(guò)將第5級(jí)第1行的二輸入加法器替換為三輸入加法器,如果輸入數(shù)據(jù)維度大于16維的時(shí)候,對(duì)輸入數(shù)據(jù)先每16個(gè)一組,通過(guò)第5級(jí)的三輸入加法器循環(huán)累加,從而支持32維的處理,具體結(jié)構(gòu)參考圖6。
[0141]如圖6所示,本實(shí)施例中所述乘累加器支持的最大輸入數(shù)據(jù)維度N=16,運(yùn)算元素列 M=5。
[0142]乒乓寄存器的數(shù)量為三個(gè),第一乒乓寄存器設(shè)置在第2級(jí)倒數(shù)第1行,第二乒乓寄存器設(shè)置在第3級(jí)倒數(shù)第2行,第三乒乓寄存器設(shè)置在第4級(jí)倒數(shù)第4行,參考如5中加法器A518、加法器A527和加法器A535相連的乒乓寄存器,其中與加法器A518相連的乒乓寄存器的輸出分別與加法器A521、加法器A527和附加寄存器R528相連,與加法器A527相連的乒乓寄存器的輸出分別與加法器A531、加法器A535和附加寄存器R537相連,與加法器A535相連的乒乓寄存器的輸出分別與加法器A541和附加寄存器R545相連。
[0143]三輸入加法器的數(shù)量為六個(gè),如圖5中加法器A521、加法器A523、加法器A525、力口法器A527、加法器A531和加法器A535。所述三輸入加法器的輸入分別與所述三輸入加法器的前一級(jí)運(yùn)算元素中最接近的運(yùn)算元素的寄存器相連,參考圖5,其中加法器A521的輸入分別是加法器A511、加法器A512和加法器A518相連的寄存器,加法器A523的輸入分別是加法器A512、加法器A513和加法器A514相連的寄存器,加法器A525的輸入分別是加法器A514、加法器A515和加法器A516相連的寄存器,加法器A527的輸入分別是加法器A516、加法器A517和加法器A518相連的寄存器,加法器A531的輸入分別是加法器A521、加法器A523和加法器A527相連的寄存器,加法器A535的輸入分別是加法器A523、加法器A525和加法器A527相連的寄存器。
[0144]第2級(jí)運(yùn)算元素為二輸入加法器,如圖5中的加法器A511、加法器A512、加法器A513、加法器A514、加法器A515、加法器A516、加法器A517和加法器A518。
[0145]第5級(jí)第1行運(yùn)算元素為一個(gè)末級(jí)三輸入加法器A541,如圖6中其中兩個(gè)輸入分別為加法器A531相連的寄存器和加法器A535相連的兵兵寄存器,第三輸入為前一時(shí)刻該加法器A541的輸出送至加法器A541的輸入端。
[0146]所述附加寄存器的數(shù)量為十七個(gè),參考圖5中的第3級(jí)運(yùn)算元素中的附加寄存器R522、附加寄存器R524、附加寄存器R526和附加寄存器R528,第4級(jí)運(yùn)算元素中的附加寄存器R532、附加寄存器R533、附加寄存器R534、附加寄存器R536、附加寄存器R537和附加寄存器R538,第5級(jí)運(yùn)算元素中的附加寄存器R542、附加寄存器R543、附加寄存器R544、附加寄存器R545、附加寄存器R546、附加寄存器R547和附加寄存器R548。
[0147]當(dāng)輸入數(shù)據(jù)大于16維時(shí),例如是32維,由于本實(shí)施例所述乘累加器支持的最大輸入數(shù)據(jù)維度N=16,在不增加運(yùn)算元素的情況下,通過(guò)對(duì)輸入數(shù)據(jù)先每16個(gè)分組,第1組中的16個(gè)數(shù)據(jù)乘累加的結(jié)果存在加法器A541相連的寄存器中先不直接輸出,等待第2組中的16個(gè)數(shù)據(jù)要進(jìn)行最后一次乘累加,即要送入加法器A531進(jìn)行相加時(shí),第1組數(shù)據(jù)的結(jié)果通過(guò)加法器A541的輸出端送入加法器A541的輸入端和第2組的數(shù)據(jù)一起相加,即通過(guò)第5級(jí)的三輸入加法器循環(huán)累加,從而支持32維的處理。
[0148]本實(shí)施例,通過(guò)第5級(jí)的三輸入加法器完成循環(huán)累加,從而在不增加運(yùn)算元素資源的情況下,支持更高維度的乘累加處理。
[0149]實(shí)施例七
[0150]本發(fā)明實(shí)施例提供的乘累加器還可以根據(jù)實(shí)際需要,基于基本的運(yùn)算元素進(jìn)行靈活擴(kuò)展,從而實(shí)現(xiàn)擴(kuò)展性高、通用性強(qiáng)的乘累加器。
[0151]參考圖7a,圖7a為本發(fā)明乘累加器實(shí)施例七的運(yùn)算元素結(jié)構(gòu)圖??梢詫⒏鞣N運(yùn)算元素以符號(hào)標(biāo)記表示,從而便于形成符號(hào)標(biāo)記形式的乘累加器拓?fù)鋱D。
[0152]圖7a中一個(gè)二輸入乘法器和一個(gè)寄存器組成的運(yùn)算元素,用于對(duì)2個(gè)數(shù)據(jù)進(jìn)行相乘運(yùn)算并存儲(chǔ)運(yùn)算結(jié)果,該運(yùn)算元素表示為2*R ;
[0153]一個(gè)二輸入加法器和一個(gè)寄存器組成的運(yùn)算元素,用于對(duì)2個(gè)數(shù)據(jù)進(jìn)行相加運(yùn)算并存儲(chǔ)運(yùn)算結(jié)果,該運(yùn)算元素表示為2+R ;
[0154]—個(gè)三輸入加法器和一個(gè)寄存器組成的運(yùn)算兀素,三輸入加法器雖然有3個(gè)輸入通道但是只對(duì)同時(shí)輸入的2個(gè)數(shù)據(jù)進(jìn)行相加,該運(yùn)算元素表示為3+R ;
[0155]一個(gè)二輸入加法器和一個(gè)乒乓寄存器組成的運(yùn)算元素,用于對(duì)2個(gè)數(shù)據(jù)進(jìn)行相加運(yùn)算并能同時(shí)存儲(chǔ)兩個(gè)運(yùn)算時(shí)刻的運(yùn)算結(jié)果,該運(yùn)算元素表示為2+RR ;
[0156]一個(gè)三輸入加法器和一個(gè)乒乓寄存器組成的運(yùn)算元素,用于對(duì)2個(gè)數(shù)據(jù)進(jìn)行相加運(yùn)算并能同時(shí)存儲(chǔ)兩個(gè)運(yùn)算時(shí)刻的運(yùn)算結(jié)果,該運(yùn)算元素表示為3+RR ;
[0157]附加寄存器,用于獲取前級(jí)運(yùn)算元素的輸出結(jié)果并輸出,該運(yùn)算元素表示為R。
[0158]通過(guò)上述運(yùn)算元素2*R、2+R、3+R、2+RR、3+RR和R的不同組合,運(yùn)用到本發(fā)明任意實(shí)施例的乘累加器中,可以實(shí)現(xiàn)高效率,通用性強(qiáng)的自適應(yīng)的乘累加器。
[0159]具體地,通過(guò)上述運(yùn)算元素組成乘累加器拓?fù)浣Y(jié)構(gòu)擴(kuò)展時(shí),可以有兩種方式,一種是橫向拓?fù)洌硪环N是縱向拓?fù)?。所述橫向拓?fù)涫侵覆辉黾舆\(yùn)算元素的擴(kuò)展,利用在不同運(yùn)算時(shí)刻向乘累加輸入分組的向量,而使累加器可支持不同維度的向量相乘。所述縱向拓?fù)涫侵竿ㄟ^(guò)增加運(yùn)算元素的擴(kuò)展來(lái)實(shí)現(xiàn)不同向量的乘累加。
[0160]例如實(shí)施例二中的乘累加器可以采用符號(hào)標(biāo)記表示為圖7b所示的拓?fù)鋱D,圖7b為本發(fā)明乘累加器實(shí)施例七的橫向拓?fù)鋱D,可以支持8維、4維和2維向量或矩陣等輸入數(shù)據(jù)隨機(jī)出現(xiàn)進(jìn)行高效率的乘累加。當(dāng)該乘累加器需要支持更高維數(shù)據(jù)乘累加時(shí),例如是16維時(shí),如果不增加運(yùn)算元素可采用橫向拓?fù)?,可參考圖7c,圖7c為本發(fā)明乘累加器實(shí)施例七的又一橫向拓?fù)鋱D,可以支持16維、8維、4維和2維向量或矩陣等輸入數(shù)據(jù)隨機(jī)出現(xiàn)進(jìn)行高效率的乘累加,圖7c的乘累加器和圖7b的乘累加器相比,沒(méi)有增加運(yùn)算元素,只是將圖7b最后一級(jí)運(yùn)算元素的2+R替換為一個(gè)3+R,即末級(jí)累加器。該乘累加器首先運(yùn)算8維向量的乘累加結(jié)果,并輸入最后一級(jí)的三輸入加法器進(jìn)行記錄,而后在另一運(yùn)算時(shí)刻計(jì)算剩余8維向量的乘累加結(jié)果,也輸入最后一級(jí)的三輸入加法器,與此前的乘累加結(jié)果相加,得到16維向量的乘累加結(jié)果。
[0161]如果增加運(yùn)算元素可采用縱向拓?fù)?,參考圖7d,圖7d為本發(fā)明乘累加器實(shí)施例七的縱向拓?fù)鋱D。同理,如果需要支持更高維度32維時(shí),既可以采用縱向拓?fù)洌挚刹捎脵M向拓?fù)?,也可以同時(shí)采用橫向拓?fù)浜涂v向拓?fù)?,根?jù)設(shè)計(jì)者的具體需求靈活使用。
[0162]本發(fā)明實(shí)施例還提供一種加速器,該加速器包括上述實(shí)施例任意所述的乘累加器,該加速器可高效率支持多維數(shù)據(jù)隨機(jī)出現(xiàn)時(shí)的乘累加運(yùn)算,其技術(shù)效果類似,此處不再贅述。
[0163]本發(fā)明實(shí)施例還提供一種處理器,該處理器的數(shù)據(jù)運(yùn)算元素由上述實(shí)施例任意所述的乘累加器組成,同時(shí)對(duì)處理器的指令或存儲(chǔ)單元進(jìn)行相應(yīng)修改,即可高效率支持多維數(shù)據(jù)隨機(jī)出現(xiàn)時(shí)的乘累加運(yùn)算,其技術(shù)效果類似,此處不再贅述。
[0164]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0165]最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種乘累加器,其特征在于,包括: M級(jí)運(yùn)算元素列,其中,第I級(jí)運(yùn)算元素列中包括N個(gè)運(yùn)算元素,所述N個(gè)運(yùn)算元素均為乘法器,第2至第M級(jí)運(yùn)算元素列中的運(yùn)算元素均為加法器,第1-Ι級(jí)運(yùn)算元素列中的運(yùn)算元素每?jī)蓚€(gè)劃分為一組,第i級(jí)運(yùn)算元素列中的每個(gè)加法器與第i_l級(jí)運(yùn)算元素列中的一組運(yùn)算元素相連,用于對(duì)所連接的運(yùn)算元素的運(yùn)算結(jié)果進(jìn)行求和,任一所述乘法器或所述加法器連接有寄存器,所述寄存器用于在每個(gè)運(yùn)算時(shí)刻記錄所述乘法器或所述加法器的運(yùn)算結(jié)果并輸出,M為大于等于2的自然數(shù),N=2m-1, i為自然數(shù)且l〈i彡M ; 與第一加法器連接的所述寄存器為乒乓寄存器,所述第一加法器為所述加法器中的至少一個(gè)加法器,所述乒乓寄存器用于存儲(chǔ)所述第一加法器在至少兩個(gè)運(yùn)算時(shí)刻分別輸出的相加結(jié)果,并將所述相加結(jié)果在對(duì)應(yīng)的運(yùn)算時(shí)刻分別輸出給后一級(jí)運(yùn)算元素列的加法器或作為所述乘累加器的運(yùn)算結(jié)果輸出,所述相加結(jié)果為所述第一加法器的前一級(jí)運(yùn)算元素列中的至少兩個(gè)運(yùn)算元素分別輸出的運(yùn)算結(jié)果之和。
2.根據(jù)權(quán)利要求1所述的乘累加器,其特征在于,所述乘累加器還包括: 至少一個(gè)附加寄存器,設(shè)置于第3級(jí)至第M級(jí)運(yùn)算元素列中,且每級(jí)運(yùn)算元素列中的附加寄存器與加法器數(shù)量之和等于N/2,各附加寄存器與前級(jí)運(yùn)算元素或前級(jí)附加寄存器相連,用于直接獲取前級(jí)的輸出結(jié)果并輸出。
3.根據(jù)權(quán)利要求1所述的乘累加器,其特征在于,所述乒乓寄存器包括至少兩個(gè)寄存器,所述兵乓寄存器中的各個(gè)寄存器用于在不同運(yùn)算時(shí)刻記錄運(yùn)算結(jié)果并輸出。
4.根據(jù)權(quán)利要求1所述的乘累加器,其特征于: 所述兵乓寄存器設(shè)置在第2級(jí)至第M-1級(jí)運(yùn)算元素列中,且設(shè)置在第m級(jí)的乒乓寄存器與該級(jí)倒數(shù)第2~ (m-2)行的加法器連接,其中,2彡m^M-l0
5.根據(jù)權(quán)利要求1至4任一所述的乘累加器,其特征于: 至少一個(gè)加法器為多輸入加法器,所述多輸入加法器與前級(jí)的三個(gè)以上運(yùn)算元素分別相連,用于將所述三個(gè)以上運(yùn)算元素的運(yùn)算結(jié)果相加。
6.根據(jù)權(quán)利要求5所述的乘累加器,其特征在于, 所述多輸入加法器為三輸入加法器,每個(gè)三輸入加法器與前級(jí)的三行運(yùn)算元素分別相連,所述三輸入加法器設(shè)置在第3級(jí)至第M-1級(jí)運(yùn)算元素列中,設(shè)置在第m級(jí)的三輸入加法器位于倒數(shù)第L行,其中L= (2~ (m-2)) Xn,L的取值范圍滿足(2~(m_2)) Xn ( N/2,其中,n ^ I, 3 ^ m ^ M-1 ; 所述三輸入加法器與上一級(jí)加法器中行數(shù)最接近的三個(gè)運(yùn)算元素分別相連; 其它加法器為二輸入加法器,每個(gè)二輸入加法器與前級(jí)的兩行運(yùn)算元素分別相連。
7.根據(jù)權(quán)利要求1至4任一所述的乘累加器,其特征于: 第M級(jí)第I行的加法器為末級(jí)三輸入加法器,所述末級(jí)三輸入加法器的兩個(gè)輸入分別與前級(jí)的兩個(gè)加法器相連,所述末級(jí)三輸入加法器的輸出連接至所述末級(jí)三輸入加法器的第三個(gè)輸入。
8.根據(jù)權(quán)利要求1至4任一所述的乘累加器,其特征在于:
N=8, M=4 ; 所述乒乓寄存器的數(shù)量為一個(gè),設(shè)置在第3級(jí)第2行,用于分別存儲(chǔ)兩個(gè)時(shí)刻輸出的兩個(gè)相加結(jié)果,其中一個(gè)輸出結(jié)果用于提供給第4級(jí)加法器,另一個(gè)輸出結(jié)果用于通過(guò)附加寄存器直接輸出; 所述附加寄存器的數(shù)量為一個(gè),與上級(jí)所述乒乓寄存器相連,獲取所述乒乓寄存器的輸出結(jié)果并輸出。
9.根據(jù)權(quán)利要求6所述的乘累加器,其特征在于:
N=8, M=4 ; 乒乓寄存器的數(shù)量為兩個(gè),分別為設(shè)置在第2級(jí)倒數(shù)第I行的第一兵乓寄存器和第3級(jí)倒數(shù)第2行的第二兵乓寄存器,所述第一乒乓寄存器的輸出分別與第3級(jí)中的第I行、第3行和第4行運(yùn)算元素相連,所述第二乒乓寄存器的輸出分別與第4級(jí)中的第I行和第3行運(yùn)算元素相連; 三輸入加法器的數(shù)量為兩個(gè),分別為設(shè)置在第3級(jí)倒數(shù)第2行的第一三輸入加法器和第3級(jí)倒數(shù)第4行的第二三輸入加法器,所述第一三輸入加法器的輸入分別與第2級(jí)中的第I行、第2行和第4行運(yùn)算元素相連,所述第二三輸入加法器的輸入分別與第2級(jí)中的第2行、第3行和第4行運(yùn)算元素相連; 第2級(jí)的運(yùn)算元素為二輸入加法器,數(shù)量為四個(gè),其輸入分別與第I級(jí)乘法器相連; 第4級(jí)第I行運(yùn)算元素為二輸入加法器,其輸入分別與第3級(jí)中第I行和第3行運(yùn)算元素相連,其結(jié)果直接輸出; 附加寄存器的數(shù)量為5,分別設(shè)置在第3級(jí)第2行、第3級(jí)第4行、第4級(jí)第2行、第4級(jí)第3行和第4級(jí)第4行。
10.根據(jù)權(quán)利要求7所述的乘累加器,其特征在于:
N=8, M=4 ; 乒乓寄存器的數(shù)量為兩個(gè),分別為設(shè)置在第2級(jí)倒數(shù)第I行的第一兵乓寄存器和第3級(jí)倒數(shù)第2行的第二乒乓寄存器,所述第一乒乓寄存器的輸出分別與第3級(jí)中的第I行、第3行和第4行運(yùn)算元素相連,所述第二乒乓寄存器的輸出分別與第4級(jí)中的第I行和第4行運(yùn)算元素相連; 三輸入加法器的數(shù)量為兩個(gè),分別為設(shè)置在第3級(jí)倒數(shù)第2行的第一三輸入加法器和第3級(jí)倒數(shù)第4行的第二三輸入加法器,所述第一三輸入加法器的輸入分別與第2級(jí)中的第I行、第2行和第4行運(yùn)算元素相連,所述第二三輸入加法器的輸入分別與第2級(jí)中的第2行、第3行和第4行運(yùn)算元素相連; 第2級(jí)運(yùn)算元素為二輸入加法器,數(shù)量為四個(gè),其輸入分別與第I級(jí)乘法器相連;所述第4級(jí)第I行運(yùn)算元素為所述末級(jí)三輸入加法器,其中兩個(gè)輸入分別與第3級(jí)中第I行和第3行運(yùn)算元素相連,第三輸入為前一時(shí)刻所述第三三輸入加法器的輸出送至所述第三三輸入加法器的輸入端; 附加寄存器的數(shù)量為5,分別設(shè)置在第3級(jí)第2行、第3級(jí)第4行、第4級(jí)第2行、第4級(jí)第3行和第4級(jí)第4行。
11.根據(jù)權(quán)利要求6所述的乘累加器,其特征在于:
N=16, M=5 ; 乒乓寄存器的數(shù)量為三個(gè),分別為設(shè)置在第2級(jí)倒數(shù)第I行的第一兵乓寄存器、第3級(jí)倒數(shù)第2行的第二兵乓寄存器和第4級(jí)倒數(shù)第4行的第三兵乓寄存器,其中第一乒乓寄存器的輸出分別與第3級(jí)中第I行、第3級(jí)第7行和第3級(jí)第8行設(shè)置的附加寄存器相連,第二乒乓寄存器的輸出分別與第4級(jí)中第I行、第4級(jí)第5行和第4級(jí)第7行設(shè)置的附加寄存器相連,第三乒乓寄存器的輸出分別與第5級(jí)中第I行加法器和第5級(jí)第5行設(shè)置的附加寄存器相連; 三輸入加法器的數(shù)量為六個(gè),其中4個(gè)分別設(shè)置在第3級(jí)中的第1、3、5和7行,其中2個(gè)分別設(shè)置在第4級(jí)中的第I和5行,所述三輸入加法器的輸入分別與所述三輸入加法器的前一級(jí)運(yùn)算元素中行數(shù)最接近的運(yùn)算元素的寄存器相連; 第2級(jí)運(yùn)算元素為二輸入加法器; 第5級(jí)第I行運(yùn)算元素為一個(gè)二輸入加法器; 所述附加寄存器的數(shù)量為十七個(gè),其中四個(gè)分別設(shè)置在第3級(jí)中的第2、4、6和8行,其中六個(gè)分別設(shè)置在第4級(jí)中的第2、3、4、6、7和8行,其余七個(gè)分別設(shè)在第5級(jí)中除第I行之外。
12.根據(jù)權(quán)利要求6所述的乘累加器,其特征在于:
N=16, M=5 ; 乒乓寄存器的數(shù)量為三個(gè),分別為設(shè)置在第2級(jí)倒數(shù)第I行的第一兵乓寄存器、第3級(jí)倒數(shù)第2行的第二兵乓寄存器和第4級(jí)倒數(shù)第4行的第三兵乓寄存器,其中第一乒乓寄存器的輸出分別與第3級(jí)中第I行、第3級(jí)第7行和第3級(jí)第8行設(shè)置的附加寄存器相連,第二乒乓寄存器的輸出分別與第4級(jí)中第I行、第4級(jí)第5行和第4級(jí)第7行設(shè)置的附加寄存器相連,第三乒乓寄存器的輸出分別與第5級(jí)中第I行加法器和第5級(jí)第5行設(shè)置的附加寄存器相連; 三輸入加法器的數(shù)量為六個(gè),其中4個(gè)分別設(shè)置在第3級(jí)中的第1、3、5和7行,其中2個(gè)分別設(shè)置在第4級(jí)中的第I和5行,所述三輸入加法器的輸入分別與所述三輸入加法器的前一級(jí)運(yùn)算元素中行數(shù)最接近的運(yùn)算元素的寄存器相連; 第2級(jí)運(yùn)算元素為二輸入加法器; 所述第5級(jí)第I行運(yùn)算元素為所述末級(jí)三輸入加法器,新增第三輸入為前一時(shí)刻該所述第5級(jí)的三輸入加法器的輸出送至所述三輸入加法器的輸入端; 所述附加寄存器的數(shù)量為十七個(gè),其中四個(gè)分別設(shè)置在第3級(jí)中的第2、4、6和8行,其中六個(gè)分別設(shè)置在第4級(jí)中的第2、3、4、6、7和8行,其余七個(gè)分別設(shè)在第5級(jí)中除第I行之外。
【文檔編號(hào)】G06F7/52GK104252331SQ201310270210
【公開(kāi)日】2014年12月31日 申請(qǐng)日期:2013年6月29日 優(yōu)先權(quán)日:2013年6月29日
【發(fā)明者】張慶學(xué), 趙長(zhǎng)虹 申請(qǐng)人:華為技術(shù)有限公司