新四季網

乘累加器的製造方法

2023-06-01 10:27:26

乘累加器的製造方法
【專利摘要】本發明提供一種乘累加器。該乘累加器包括M級運算元素列,其中,第1級運算元素列中包括N個乘法器,第2至第M級運算元素列中的運算元素均為加法器,任一所述乘法器或所述加法器連接有寄存器,其中,與第一加法器連接的寄存器為桌球寄存器,第一加法器為加法器中的至少一個加法器,桌球寄存器用於存儲所述第一加法器在至少兩個運算時刻分別輸出的相加結果,並將所述相加結果在對應的運算時刻分別輸出給後一級運算元素列的加法器或作為所述乘累加器的運算結果輸出。本發明提供的乘累加器解決現有技術乘累加器在多維數據隨機出現時效率低的問題,從而提高運算效率。
【專利說明】乘累加器

【技術領域】
[0001]本發明涉及數據處理技術,尤其涉及一種乘累加器。

【背景技術】
[0002]乘累加器(Multiply and Accumulate,簡稱MAC)用於完成向量相乘、矩陣相乘和向量矩陣互乘等乘累加運算,是協處理器(Cooperat1n Processor,簡稱CP)、數位訊號處理器(Digital Signal Processing,簡稱DSP)、中央處理器(Central Processing Unit,簡稱 CPU)和專用指令處理器(Applicat1n Specific Instruct1n Processor,簡稱 ASIP)等處理器中極其重要的運算子系統。乘累加器架構作為矢量指令的架構載體,可以應用在多個領域中完成重要的功能,如通信領域中長期演進(Long Term Evolut1n,簡稱LTE)上下行多入多出通信技術(Multiple Input Multiple Output,簡稱ΜΙΜΟ)編碼和解碼的向量或矩陣處理、下行波束成形技術(Beam Forming,簡稱BF)中的天線數據加權處理,信號處理領域中的數據處理,圖形圖像領域中的數據處理。
[0003]現有的乘累加器包括Μ級運算元素列,Μ為大於等於2的自然數;其中,第1級運算元素列中每行的運算元素為乘法器,且第1級中運算元素的行數為Ν,Ν為自然數,等於所述乘累加器支持的最大輸入數據維度,且2~ (Μ-1) =Ν ;第2級至第Μ級的運算元素列中包括加法器,每級加法器的行數為前級乘法器或前級加法器行數的二分之一;每個乘法器和每個加法器分別連接有寄存器,所述寄存器用於在每個運算時刻記錄該運算元素的運算結果並輸出。例如,圖1為現有乘累加器的架構示意圖,參考圖1,該累加器架構由8個支持16比特復乘的乘法器和7個加法器組成,各乘法器分別記為Μ1-Μ8,各加法器分別記為A11-Α14、Α21、Α22和Α31,即Μ為4,Ν為8。每個乘法器和加法器分別連接一個寄存器,記為R。所述乘法器位於輸入端的第一級,用於處理兩個16比特複數向量相乘,由於乘法器數量為8所以最大支持8維向量或矩陣相乘。其結果通過連接的寄存器輸出給下級加法器,加法器用於處理前一級的兩個運算元素輸出結果的相加運算,其結果通過連接的寄存器輸出給下一級運算元素,直至從加法器Α31輸出最終的向量相乘結果。矩陣相乘原理相同,此處不再舉例。向量的維數是指向量中的元素的個數,例如兩個8維向量相乘,其中向量X中含xl、χ2、χ3、χ4、χ5、χ6、χ7 和 χ8 這 8 個元素,向量 Υ 中含 yl、y2、y3> y4> y5> y6> y7 和 y8 這 8 個元素,乘累加器完成的向量X和Y相乘運算就是兩個向量中的元素對應相乘並累加,即xlXyl+x2Xy2+x3Xy3+x4Xy4+x5Xy5+x6Xy6+x7Xy7+x8Xy8。圖 1 中的 8 個乘法器可記為
Ml、Mn、......M8, η從1到8, Μη用於處理xnXyn運算,每個乘法器對向量中對應元素相乘後在寄存器中緩存,再如箭頭所示,輸出相乘結果到加法器進行相加處理,相加後的結果在寄存器中緩存,而後輸出到後級的加法器,以此類推,直至最後一級加法器相加後輸出。如圖1所示,節點A處的加法器A21處理8維向量中前4個元素對應相乘並累加的結果,即xlXyl+x2X y2+x3 X y3+x4 X y4,B節點的加法器A22處理8維向量中後4個元素對應相乘並的結果,即X5Xy5+X6Xy6+X7Xy7+X8Xy8,然後在節點C將節點A的結果和節點B的結果相加。
[0004]乘法器的效率=參與運算的乘法器的數量/乘法器的總量,則上述現有乘累加器中乘法器的效率為8/8=100%。上述MAC架構只能在完成該8維向量相乘運算後,才能處理下個向量的運算,如果下個輸入是兩個4維向量的元素,該MAC架構完成兩個4維向量裡的元素對應相乘時,只佔用一半的資源即只通過A節點到C節點輸出,這時會有4個乘法器空閒,乘法器的效率為(8+4)/ (8+8)=75%。完成上述4維向量相乘運算後,如果下個輸入是2維向量,必須要等到4維向量輸出後才能處理,而且只有2個乘法器參與運算處理,其餘6個乘法器處於空閒,這時乘法器效率為(8+4+2) / (8*3) =58%。
[0005]現有技術存在的一個問題是,當輸入向量的維度是8、4和2隨機出現時,現有MAC架構的效率會進一步降低。而在實際場景中,不同維度的向量、矩陣大多是不規律出現的,比如通信領域中的ΜΜ0或BF處理,所配置的天線數可能不同,那麼其算法配置中的層數、天線數、波束成形方式等都可能不同,由此使得一個載扇內大量的MMO、BF處理具有不同的維度,而如何在不同維度隨機共存的情況下,提升MAC運算的處理效率非常重要,直接影響到通信時延指標、通信設備的成本、功耗等各方面。
[0006]現有技術還有一個問題是當維度繼續增加時,比如支持到16、32維,該MAC架構無法支持多維的共存,而只能把數據按每8個分為一組,分組來處理。


【發明內容】

[0007]本發明實施例提供一種乘累加器,以解決現有技術乘累加器在多維數據隨機出現時效率低的問題,從而提高運算效率。
[0008]第一方面,本發明實施例提供一種乘累加器,包括:
[0009]Μ級運算元素列,其中,第1級運算元素列中包括Ν個運算元素,所述Ν個運算元素均為乘法器,第2至第Μ級運算元素列中的運算元素均為加法器,第1-Ι級運算元素列中的運算元素每兩個劃分為一組,第i級運算元素列中的每個加法器與第1-Ι級運算元素列中的一組運算元素相連,用於對所連接的運算元素的運算結果進行求和,任一所述乘法器或所述加法器連接有寄存器,所述寄存器用於在每個運算時刻記錄所述乘法器或所述加法器的運算結果並輸出,Μ為大於等於2的自然數,N=2m-1, i為自然數且l〈i彡Μ ;
[0010]與第一加法器連接的所述寄存器為桌球寄存器,所述第一加法器為所述加法器中的至少一個加法器,所述桌球寄存器用於存儲所述第一加法器在至少兩個運算時刻分別輸出的相加結果,並將所述相加結果在對應的運算時刻分別輸出給後一級運算元素列的加法器或作為所述乘累加器的運算結果輸出,所述相加結果為所述第一加法器的前一級運算元素列中的至少兩個運算元素分別輸出的運算結果之和。
[0011]在第一方面的第一種可能的實現方式中,所述乘累加器還包括:
[0012]至少一個附加寄存器,設置於第3級至第Μ級運算元素列中,且每級運算元素列中的附加寄存器與加法器數量之和等於Ν/2,各附加寄存器與前級運算元素或前級附加寄存器相連,用於直接獲取前級的輸出結果並輸出。
[0013]在第一方面的第二種可能的實現方式中,所述桌球寄存器包括至少兩個寄存器,所述兵乓寄存器中的各個寄存器用於在不同運算時刻記錄運算結果並輸出。
[0014]在第一方面的第三種可能的實現方式中,所述兵乓寄存器設置在第2級至第Μ-1級運算元素列中,且設置在第m級的桌球寄存器與該級倒數第2~ (m-2)行的加法器連接,其中,2彡m彡Μ-1。
[0015]根據第一方面、第一方面的第一種至第三種任意一種可能的實現方式,在第四種可能的實現方式中,至少一個加法器為多輸入加法器,所述多輸入加法器與前級的三個以上運算元素分別相連,用於將所述三個以上運算元素的運算結果相加。
[0016]根據第一方面的第四種可能的實現方式,在第一方面的第五種可能的實現方式中,所述多輸入加法器為三輸入加法器,每個三輸入加法器與前級的三行運算元素分別相連,所述三輸入加法器設置在第3級至第Μ-l級運算元素列中,設置在第m級的三輸入加法器位於倒數第L行,其中L=(2~(m-2)) Xn,L的取值範圍滿足(2~(m_2)) Xn ( N/2,其中,η ^ 1, 3 ^ m ^ Μ-1 ;
[0017]所述三輸入加法器與上一級加法器中行數最接近的三個運算元素分別相連;
[0018]其它加法器為二輸入加法器,每個二輸入加法器與前級的兩行運算元素分別相連。
[0019]根據第一方面、第一方面的第一種至第三種任意一種可能的實現方式,在第六種可能的實現方式中,第Μ級第1行的加法器為末級三輸入加法器,所述末級三輸入加法器的兩個輸入分別與前級的兩個加法器相連,所述末級三輸入加法器的輸出連接至所述末級三輸入加法器的第三個輸入。
[0020]根據第一方面、第一方面的第一種至第三種任意一種可能的實現方式,在第七種可能的實現方式中:
[0021]Ν=8,Μ=4;
[0022]所述桌球寄存器的數量為一個,設置在第3級第2行,用於分別存儲兩個時刻輸出的兩個相加結果,其中一個輸出結果用於提供給第4級加法器,另一個輸出結果用於通過附加寄存器直接輸出;
[0023]所述附加寄存器的數量為一個,與上級所述桌球寄存器相連,獲取所述桌球寄存器的輸出結果並輸出。
[0024]根據第一方面的第五種可能的實現方式,在第一方面的第八種可能的實現方式中:
[0025]Ν=8,Μ=4;
[0026]桌球寄存器的數量為兩個,分別為設置在第2級倒數第1行的第一兵乓寄存器和第3級倒數第2行的第二兵乓寄存器,所述第一桌球寄存器的輸出分別與第3級中的第1行、第3行和第4行運算元素相連,所述第二桌球寄存器的輸出分別與第4級中的第1行和第3行運算元素相連;
[0027]三輸入加法器的數量為兩個,分別為設置在第3級倒數第2行的第一三輸入加法器和第3級倒數第4行的第二三輸入加法器,所述第一三輸入加法器的輸入分別與第2級中的第1行、第2行和第4行運算元素相連,所述第二三輸入加法器的輸入分別與第2級中的第2行、第3行和第4行運算元素相連;
[0028]第2級的運算元素為二輸入加法器,數量為四個,其輸入分別與第1級乘法器相連;
[0029]第4級第1行運算元素為二輸入加法器,其輸入分別與第3級中第1行和第3行運算元素相連,其結果直接輸出;
[0030]附加寄存器的數量為5,分別設置在第3級第2行、第3級第4行、第4級第2行、第4級第3行和第4級第4行。
[0031]根據第一方面的第六種可能的實現方式,在第一方面的第九種可能的實現方式中:
[0032]N=8, M=4 ;
[0033]桌球寄存器的數量為兩個,分別為設置在第2級倒數第1行的第一兵乓寄存器和第3級倒數第2行的第二桌球寄存器,所述第一桌球寄存器的輸出分別與第3級中的第1行、第3行和第4行運算元素相連,所述第二桌球寄存器的輸出分別與第4級中的第1行和第4行運算元素相連;
[0034]三輸入加法器的數量為兩個,分別為設置在第3級倒數第2行的第一三輸入加法器和第3級倒數第4行的第二三輸入加法器,所述第一三輸入加法器的輸入分別與第2級中的第1行、第2行和第4行運算元素相連,所述第二三輸入加法器的輸入分別與第2級中的第2行、第3行和第4行運算元素相連;
[0035]第2級運算元素為二輸入加法器,數量為四個,其輸入分別與第1級乘法器相連;
[0036]所述第4級第1行運算元素為所述末級三輸入加法器,其中兩個輸入分別與第3級中第1行和第3行運算元素相連,第三輸入為前一時刻所述第三三輸入加法器的輸出送至所述第三三輸入加法器的輸入端;
[0037]附加寄存器的數量為5,分別設置在第3級第2行、第3級第4行、第4級第2行、第4級第3行和第4級第4行。
[0038]根據第一方面的第五種可能的實現方式,在第一方面的第十種可能的實現方式中:
[0039]N=16, M=5 ;
[0040]桌球寄存器的數量為三個,分別為設置在第2級倒數第1行的第一兵乓寄存器、第3級倒數第2行的第二兵乓寄存器和第4級倒數第4行的第三兵乓寄存器,其中第一桌球寄存器的輸出分別與第3級中第1行、第3級第7行和第3級第8行設置的附加寄存器相連,第二桌球寄存器的輸出分別與第4級中第1行、第4級第5行和第4級第7行設置的附加寄存器相連,第三桌球寄存器的輸出分別與第5級中第1行加法器和第5級第5行設置的附加寄存器相連;
[0041]三輸入加法器的數量為六個,其中4個分別設置在第3級中的第1、3、5和7行,其中2個分別設置在第4級中的第1和5行,所述三輸入加法器的輸入分別與所述三輸入加法器的前一級運算元素中行數最接近的運算元素的寄存器相連;
[0042]第2級運算元素為二輸入加法器;
[0043]第5級第1行運算元素為一個二輸入加法器;
[0044]所述附加寄存器的數量為十七個,其中四個分別設置在第3級中的第2、4、6和8行,其中六個分別設置在第4級中的第2、3、4、6、7和8行,其餘七個分別設在第5級中除第1行之外。
[0045]根據第一方面的第五種可能的實現方式,在第一方面的第十一種可能的實現方式中:
[0046]N=16,M=5;
[0047]桌球寄存器的數量為三個,分別為設置在第2級倒數第1行的第一兵乓寄存器、第3級倒數第2行的第二兵乓寄存器和第4級倒數第4行的第三兵乓寄存器,其中第一桌球寄存器的輸出分別與第3級中第1行、第3級第7行和第3級第8行設置的附加寄存器相連,第二桌球寄存器的輸出分別與第4級中第1行、第4級第5行和第4級第7行設置的附加寄存器相連,第三桌球寄存器的輸出分別與第5級中第1行加法器和第5級第5行設置的附加寄存器相連;
[0048]三輸入加法器的數量為六個,其中4個分別設置在第3級中的第1、3、5和7行,其中2個分別設置在第4級中的第1和5行,所述三輸入加法器的輸入分別與所述三輸入加法器的前一級運算元素中行數最接近的運算元素的寄存器相連;
[0049]第2級運算元素為二輸入加法器;
[0050]所述第5級第1行運算元素為所述末級三輸入加法器,新增第三輸入為前一時刻該所述第5級的三輸入加法器的輸出送至所述三輸入加法器的輸入端;
[0051]所述附加寄存器的數量為十七個,其中四個分別設置在第3級中的第2、4、6和8行,其中六個分別設置在第4級中的第2、3、4、6、7和8行,其餘七個分別設在第5級中除第1行之外。
[0052]本發明實施例提供的乘累加器,通過所述桌球寄存器,可以同時存儲所連接加法器在至少兩個運算時刻輸出的各相加結果,並將各相加結果分別向後一級的加法器輸出或直接作為乘累加器的結果輸出,以實現不同維度的向量乘法或矩陣乘法並存時自適應乘累力口,提高了效率,解決現有MAC架構對於當輸入向量的維度是8、4和2隨機出現時效率降低的問題,同時能支持更高維度的向量或矩陣乘累加運算。

【專利附圖】

【附圖說明】
[0053]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0054]圖1為現有的乘累加器的架構示意圖;
[0055]圖2a為本發明乘累加器實施例一的結構示意圖;
[0056]圖2b為本發明乘累加器實施例二的時序圖;
[0057]圖3a為本發明乘累加器實施例二的結構示意圖;
[0058]圖3b為本發明乘累加器實施例二的時序圖;
[0059]圖4為本發明乘累加器實施例三的結構示意圖;
[0060]圖5為本發明乘累加器實施例四的結構示意圖;
[0061]圖6為本發明乘累加器實施例五的結構示意圖;
[0062]圖7a為本發明乘累加器實施例七的運算元素結構圖;
[0063]圖7b為本發明乘累加器實施例七的橫向拓撲圖;
[0064]圖7c為本發明乘累加器實施例七的又一橫向拓撲圖;
[0065]圖7d為本發明乘累加器實施例七的縱向拓撲圖。

【具體實施方式】
[0066]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0067]本發明實施例提供一種乘累加器,包括Μ級運算元素列,其中,第1級運算元素列中包括Ν個運算元素,所述Ν個運算元素均為乘法器,第2至第Μ級運算元素列中的運算元素均為加法器,第i_l級運算元素列中的運算元素每兩個劃分為一組,第i級運算元素列中的每個加法器與第i_l級運算元素列中的一組運算元素相連,用於對所連接的運算元素的運算結果進行求和,任一所述乘法器或所述加法器連接有寄存器,所述寄存器用於在每個運算時刻記錄所述乘法器或所述加法器的運算結果並輸出,Μ為大於等於2的自然數,Ν=2μ^, i為自然數且l〈i ( Μ。
[0068]本實施例的乘累加器中,與第一加法器連接的所述寄存器為桌球寄存器,所述第一加法器為所述加法器中的至少一個加法器,所述桌球寄存器用於存儲所述第一加法器在至少兩個運算時刻分別輸出的相加結果,並將所述相加結果在對應的運算時刻分別輸出給後一級運算元素列的加法器或作為所述乘累加器的運算結果輸出,所述相加結果為所述第一加法器的前一級運算元素列中的至少兩個運算元素分別輸出的運算結果之和。
[0069]該乘累加器可以作為加速器,也可以集成在處理器的數據運算元素中。本發明實施例通過設置兵乓寄存器,可以充分利用空閒的乘法器,適應多維度向量的乘法計算。
[0070]其中,上述方案中所述桌球寄存器實現存儲多個運算時刻的相加結果,可以通過設置一個有兩個以上存儲位置的寄存器來實現,或者也可以包括至少兩個寄存器,兵乓寄存器中的各個寄存器用於在不同運算時刻記錄運算結果並輸出。多個寄存器即可在多個運算時刻分別記錄運算結果並輸出。
[0071]進一步地,所述桌球寄存器是根據所述第1級運算元素列中,與所述桌球寄存器對應的,乘法器所計算的元素對應的向量的維數,自動將所述相加結果緩存至下一運算時亥IJ,從而在對應的運算時刻,輸出給後一級運算元素列的加法器或作為所述乘累加器的運算結果輸出,詳細原理請參考圖2a和圖2b的內容。
[0072]本實施例中的乘累加器結構圖可參考圖2a,圖2a為本發明乘累加器實施例一的結構示意圖,圖2a中桌球寄存器設在與加法器A122相連的節點B處。
[0073]本實施例中,由於設置了兵乓寄存器,可以在桌球寄存器中同時存儲兩個運算時刻輸出的各相加結果,並將各相加結果在對應的運算時刻分別向後一級的運算元素輸出,從而使乘累加器可以在本次運算還未完成但是只要有乘法器是空閒的就可以進行下次數據的乘法運算,提高了乘累加器的效率。
[0074]上述實施例基礎上,乘累加器還可優選包括至少一個附加寄存器,所述附加寄存器設置於第3級至第Μ級運算元素列中,且每級運算元素列中的附加寄存器與加法器數量之和等於Ν/2,各附加寄存器與前級運算元素或前級附加寄存器相連,用於直接獲取前級的輸出結果並輸出。
[0075]附加寄存器不進行相乘或相加的運算,只用於在該運算時刻將前級的輸出結果直接輸出,所以根據需要,可以在每列運算元素之外剩餘的部分或全部位置均設置附加寄存器,這取決於前級有多少需直接輸出的結果。
[0076]在本發明實施例的各方案中,兵乓寄存器的位置優選是,設置在第2級至第Μ-l級運算元素列中,且設置在第m級的桌球寄存器與該級倒數第2~(m-2)行的加法器連接,其中,2彡m彡M-1。
[0077]按照上述規則確定兵乓寄存器的位置所在的級數和行數,能夠在不同運算時刻同時存儲不同維數的矢量相乘後相加的結果。下面通過典型實例進行詳細介紹。
[0078]實施例一
[0079]圖2a為本發明乘累加器實施例一的結構示意圖,本實施例以上述技術方案為基礎,且可以參照圖1,在圖1所示乘累加器的基礎上進行了改進。如圖2a所示,本實施例所述乘累加器支持的最大輸入數據維度N=8,運算元素列的級數M=4。
[0080]所述桌球寄存器的數量為一個,設置在第3級第2行,即B點處加法器所連接的寄存器為兵乓寄存器。所述桌球寄存器所連接的加法器A122的輸入分別與第2級中的第3行和第4行加法器相連,該兵乓寄存器用於分別存儲加法器A122兩個時刻輸出的兩個相加結果,其中一個輸出結果用於提供給第4級加法器A131,另一個輸出結果用於通過附加寄存器R132直接輸出;
[0081]所述附加寄存器R132的數量為一個,與上級所述桌球寄存器相連,獲取所述桌球寄存器的輸出結果並輸出。
[0082]如圖2a所示,本實施例具體包括:第1級運算元素的行數為8,每行運算元素由1個乘法器及所述乘法器後連接的寄存器組成,如圖2a中乘法器肌1、112、113、114、1115、M16、M17和M18 ;第2級運算元素的行數為4,每行運算元素由1個加法器及所述加法器後連接的寄存器組成,如圖2a中的加法器A111、A112、A113和A114 ;第3級運算元素的行數為2,其中第1行運算元素為1個加法器及所述加法器後連接的寄存器組成,如圖2a中加法器A121,第2行運算元素為1個加法器及所述加法器後連接的桌球寄存器組成,如圖2a中加法器A122 ;第4級運算元素行數為2,其中第1行運算元素為1個加法器及所述加法器後連接的寄存器組成,如圖2a中加法器A131,第2行運算元素為1個附加寄存器R132。
[0083]每個乘法器和每個加法器分別連接有寄存器,所述寄存器用於在每個運算時刻記錄運算結果並輸出,所述乘法器及與所述乘法器連接的寄存器構成一個運算元素,所述加法器及與所述加法器連接的寄存器構成一個運算元素。
[0084]為方便說明,本實施例以8維向量和4維向量隨機共存進行乘累加運算為例,其時序關係圖如圖2b所示。例如首先輸入的是2個8維向量X和Y,向量X中的元素X中含xl、x2、x3、x4、x5、x6、x7 和 x8 這 8 個元素,向量 Y 中含 yl、y2、y3> y4> y5> y6> y7 和 y8 這 8 個元素,乘累加器要完成的運算是 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運算時刻,參考圖2a,第1級運算元素完成輸入數據的乘法運算,即乘法器皿11完成11\71,乘法器肌2完成12\72,依次類推乘法器M18完成x8Xy8。每個乘法器的結果通過與該乘法器相連接的寄存器輸出至第2級加法器。
[0086]乘法器Mil和M12的結果通過第2級加法器A111完成相加運算,乘法器M13和M14的結果通過第2級加法器A112完成相加運算,加法器A111的結果通過與A111相連接的寄存器輸出至第3級加法器A121的輸入端,加法器A112的結果通過與加法器A112相連接的寄存器輸出至加法器A121的輸入端,如圖2a中節點A處完成了xl X y 1+χ2 X y2+x3 X y3+x4X y4的結果,為方便說明將所述結果記為8a。
[0087]同理圖2a中8節點完成15\75+16\76+17\77+18\78,在當前運算時刻,加法器八122所連接的桌球寄存器存儲的是15\75+妨\76+17\77+18\78的結果,為方便說明將所述結果記為8b。
[0088]如圖2b所示,在tl時刻,A點和B點的寄存器存儲的結果分別為8a和8b。
[0089]加法器A121的結果和加法器A122的結果輸出至第4級第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的結果,並通過與加法器A131相連接的寄存器輸出,即形成C點處的相加結果,如圖2b所示。此時刻從C點的寄存器就可獲得8維向量的乘累加結果,這樣便完成了整個8維向量乘累加運算。
[0090]本次運算中,所有的乘法器使用率是100%。
[0091]如果第2個輸入是兩個4維向量,即t2運算時刻輸入的是兩個4維向量,則只需要通過乘法器M11、M12、M13和M14完成向量的乘累加運算,通過加法器A131輸出結果,SP在A點寄存器處的結果為「4」,如圖2b所示。其餘乘法器可在該運算時刻並行處理下個數據的其中4個元素相乘累加。
[0092]例如這時第3個輸入是兩個8維向量XI和Y1,那麼XI中的前4個元素和Y1中的前4個元素可以在t2運算時刻,通過M15至M18完成運算,其結果存儲在加法器A122相連的桌球寄存器中,即B點處的桌球寄存器記錄t2運算時刻的結果8a,這時所述桌球寄存器中只存儲8a,此時並不輸出8a,所述桌球寄存器中在tl運算時刻輸入時存儲的8b已經輸出。
[0093]XI中的後4個元素和Y1中的後4個元素在t3運算時刻通過乘法器Mil至M14完成運算,其結果存儲在加法器A121相連的A點寄存器中,該結果記為8b。在t3時刻,B點桌球寄存器在t2運算時刻存儲的8a和A點寄存器存儲的8b —起送至加法器A131中相加並通過與A131相連的C點寄存器輸出。
[0094]如果第4個輸入是兩個8維向量X2和Y2,和上述過程同理,向量X2和Y2前4個元素通過乘法器M15、M16、M17和M18完成運算,其結果記為8a,8a在與加法器A122相連接的B點桌球寄存器中存儲,但此時不能輸出,需要等X2和Y2中後4個元素運算完,向量X2和Y2後4個元素通過乘法器M11、M12、M13和M14完成運算,其結果記為8b,8b存儲在與加法器A121相連的A點寄存器中,這時乘法器M15、M16、M17和M18是空閒的,如果第5個輸入是4維向量,那麼該4維向量可以使用乘法器M15、M16、M17和M18進行運算,其結果記為4,存儲在與加法器A122相連的B點桌球寄存器中,這時所述桌球寄存器中在上一時刻已經存儲了 8a,8a等待8b到來時一起輸出至加法器A131,從而完成8維向量X2和Y2的乘累加運算。運算結果4等8b輸出後通過附加寄存器R132直接輸出,從而完成該4維向量的運笪
[0095]上述過程中,無論下次輸入數據是8維還是4維,乘法器的使用沒有空閒時刻,效率都是100%。
[0096]本實施例,通過在乘累加器中使用所述桌球寄存器,同時存儲兩個時刻的運算結果並依此輸出,從而實現了乘法器100%高效處理,解決現有技術中乘累加器效率低的問題。
[0097]以圖2a和2b的乘累加器工作原理可知,兵乓寄存器用於在所對應的乘法器和加法器進行運算後,將至少兩個運算時刻獲得的運算結果逐一進行存儲,以便該運算結果可利用至下一運算時刻。以兩個運算時刻為例,兵乓寄存器在第一運算時刻存儲第一運算結果;在第二運算時刻,自動將第一運算結果緩存,同時也可獲取第第二運算時刻上一級提供的第二運算結果。由此,第一運算結果既可在第一運算時刻使用,也可以在第二運算時刻使用,具體是直接輸出還是提供給下一級加法器,則根據具體的向量維度運算需求而定。可以通過在不同運算時刻向不同的乘法器輸入向量的不同部分來控制兵乓寄存器存儲哪個運算結果。由此,該乘累加器架構可以根據不同的維度組合自動配置加法數據流向。一組處理可跨越至少2個處理周期,兵乓寄存器自動存儲上一處理周期的結果用於下一處理周期的處理,支持所有乘法器全利用並行輸出多路結果。
[0098]實施例二
[0099]圖3a為本發明乘累加器實施例二的結構示意圖。本實施例是在上述實施例基礎上,對乘累加器的結構做出改動以實現8維、4維和2維隨機出現時乘累加器高效率運算,本實施例優選採用以下結構:
[0100]所述兵乓寄存器設置在第2級至第Μ-l級運算元素列中,且設置在第m級的桌球寄存器與該級倒數第2~ (m-2)行的加法器連接,其中,2彡m彡M-1。
[0101]並且,本實施例中,優選是至少一個加法器為多輸入加法器,所述多輸入加法器與前級的三個以上運算元素分別相連,用於將所述三個以上運算元素的運算結果相加。採用多輸入加法器可以計算多個前級運算結果之和,能夠將各次運算結果進行靈活組合,滿足乘累加器對向量計算的需求。
[0102]該多輸入加法器典型為三輸入加法器,每個三輸入加法器與前級的三行運算元素分別相連,所述三輸入加法器設置在第3級至第Μ-l級運算元素列中,設置在第m級的三輸入加法器位於倒數第L行,其中L=(2~ (m-2)) Xn, L的取值範圍滿足(2~ (m-2)) Xn ( Ν/2,其中,η彡1,3彡m彡M-1 ;
[0103]所述三輸入加法器與上一級加法器中行數最接近的三個運算元素分別相連。
[0104]需要說明的,所述行數最接近是按最後1行和第1行相接計算,例如和第1行行數最接近的是第1行、第2行和第4行,而不是第1行、第2行和第3行,和第3行行數最接近的是第2行、第3行和第4行。
[0105]其它加法器為二輸入加法器,每個二輸入加法器與前級的兩行運算元素分別相連。
[0106]具體地,參考圖3a,本實施例中所述乘累加器支持的最大輸入數據維度N=8,運算元素列的級數M=4。
[0107]桌球寄存器的數量為兩個,參考圖3a,其中第一桌球寄存器與第2級倒數第1行的加法器A214相連,第二兵乓寄存器與第3級倒數第2行的加法器A223相連,設置在加法器A214相連的第一兵兵寄存器的輸出分別與三輸入加法器A221、三輸入加法器A223和附加寄存器R224相連,其中一個時刻的運算結果同時輸出給了三輸入加法器A221和附加寄存器R224。設置在加法器A223相連的第二桌球寄存器的輸出分別與加法器A231和附加寄存器R233相連。
[0108]三輸入加法器的數量為兩個,第一三輸入加法器為設置在第3級倒數第2行的三輸入加法器A223,第二三輸入加法器為設置在第3級倒數第4行的三輸入加法器A221,三輸入加法器A223的輸入分別為加法器A212、加法器A213和加法器A214相連的寄存器,三輸入加法器A221的輸入分別為加法器A211、加法器A212和加法器A214相連的寄存器。
[0109]第2級運算元素為二輸入加法器,數量為四個,如圖3a中加法器A211、加法器A212、加法器A213和加法器A214,加法器A211連接乘法器M21和乘法器M22相連的寄存器,以完成對乘法器M21的結果和乘法器M22的結果進行相加運算,加法器A212、加法器A213和加法器A214的作用類似。
[0110]第4級第1行運算元素為加法器A231,是一個二輸入加法器,其輸入分別與第3級中第1行和第3行運算元素相連,其結果直接輸出;
[0111]所述附加寄存器的數量為5,如圖3a中附加寄存器R222、附加寄存器R224、附加寄存器R232、附加寄存器R233和附加寄存器R234。
[0112]為方便說明,本實施例以輸入數據8維、4維及2維隨機出現進行說明,例如輸入數據順序依次是8維、4維、2維、8維和4維的向量。圖3b為本發明乘累加器實施例二的時序圖,結合圖3a和圖3b對處理輸入數據的過程進行詳細說明,具體如下:
[0113]在t4運算時刻,對於第1個輸入的兩個8維向量X3和Y3,乘法器M21至M28所有的乘法器都參與運算。在t5運算時刻所有乘法器的結果送至下一級的加法器A211至A214,參考圖3b中節點H、1、J、K,其中節點Η處的寄存器存儲的數據h81為X3和Y3中第1個元素和第2個元素分別對應相乘後累加的結果,節點I處的寄存器存儲的數據i81為X3和Y3中第3個元素和第4個元素分別對應相乘後累加的結果,依次類推j81和k81。在t6運算時刻數據h81和i81通過加法器A221相加並存儲在節點A1處的寄存器,也就是加法器A221相連的寄存器,依次類推數據j81和k81相加的結果存儲在節點B1處的桌球寄存器。在t7運算時刻節點A1和節點B1處的數據通過加法器A231完成相加運算送至節點C1處的寄存器,即X3和Y3的乘累加結果在A231中完成最後一次相加運算並通過A231相連的寄存器輸出。
[0114]然後,在t8運算時刻,當第2個輸入數據是兩個4維向量X4和Y4時,通過乘法器M21、M22、M23和M24完成乘累加運算,在t9運算時刻分別送至下級運算元素,即圖3a中的加法器A211和加法器A212,圖3b中節點Η處存儲的是加法器A211的結果h41,節點I處存儲的是加法器A212的結果i41。在tlO運算刻h41和i41通過加法器A221完成相加運算並存儲在與加法器A221相連的寄存器中,即圖3b中的節點A1。在til運算時刻通過加法器A231相連的寄存器輸出結果,即節點C1輸出。需要說明的是加法器A231的另一個輸入來源是前級加法器A223相連的桌球寄存器,所述加法器A223相連的桌球寄存器在這時刻沒有存儲任何數據,因此C1輸出的是向量X4和Y4乘累加的結果。
[0115]在t8運算時刻由於乘法器M25、M26、M27和M28這時空閒,可以同時進行下一個輸入數據的處理,即乘法器M25、M26完成2維向量X5和Y5的乘法運算,在t9運算時刻將其乘法結果通過加法器A213完成相加運算,結果記為j_2,j2在tlO運算時刻送至加法器A223並存儲在加法器A223相連的桌球寄存器中,在til運算時刻通過附加器存器R233輸出。
[0116]在t8運算時刻,還有乘法器M27和乘法器M28是空閒的,因此可以處理8維向量X6和Y6的前兩個元素相乘,在t9運算時刻將其乘法結果通過加法器A214完成相加運算,結果記為h82,存儲在與加法器A214相連的桌球寄存器中,即圖3b節點K處,h82並不在下一次運算時刻輸出而是等待X6和Y6中其他元素也完成乘法運算的時候再輸出至下一級運算元素。等待tl2運算時刻乘法器M21和乘法器M22分別完成X6和Y6的第3個和第4個元素分別對應相乘,乘法器M23和乘法器M24分別完成X6和Y6的第5個和第6個元素分別對應相乘,乘法器M25和乘法器M26分別完成X6和Y6的第7個和第8個元素分別對應相乘,同時,在tl2運算時刻乘法器M27和乘法器M28已空閒可以完成下個輸入數據兩個4維向量X7和Y7的前2個元素對應相乘,在tl3運算時刻,將乘法器M21至M28的結果分別送至下級運算元素,通過加法器A211至A214完成相加運算,其結果為圖3b節點Η處的?82,節點I處的j82,節點J處的k82,節點K處的h42。節點K為與加法器A214相連的桌球寄存器,t9運算時刻已存儲了 h82,tl3運算時刻又送入了 h42,即在tl3運算時刻同時存儲了 h82和h42兩個數據。其中,h82是X6和Y6的前2個元素相乘的結果,在tl4運算時刻,h82和i82 —起送入三輸入加法器A221進行相加運算,其結果存儲在A1處;j82和k82 一起送入加法器A223進行相加運算,其結果存儲在B1處。等tl4運算時刻A1處的數據和B1處的數據通過加法器A231進行相加,然後在tl5運算時刻通過與加法器A231相連的寄存器輸出,至此完成8維X6和Y6的乘累加結果。在tl6運算時刻乘法器M21和乘法器M22完成X7和Y7後兩個元素相乘,將其相乘結果在tl7運算時刻通過加法器A211進行相加運算,相加後的結果記為i42,等到tl8運算時刻i42和節點K處的桌球寄存器中存儲的h42 —起送至節點A1處完成相加運算,在tl9運算時刻通過節點C1輸出結果,至此完成4維X7和Y7的乘累加結果。
[0117]上述過程中,8個乘法器使用效率始終是100%,無需等本次數據完全處理完才處理下次數據的乘法,極大提高了乘累加器的效率。
[0118]本實施例,通過乘累加器中第2級運算元素和第3級運算元素中桌球寄存器並增加附加寄存器輸出通路,及第3級運算元素三輸入加法器,實現輸入數據當8維、4維及2維隨機出現時乘法器100%效率的運行,極大提高乘累加器的效率。
[0119]實施例三
[0120]圖4為本發明乘累加器實施例三的結構示意圖。本實施例是在實施例二基礎上,不增加資源的情況下,通過將第4級二輸入加法器替換為三輸入加法器,如果輸入數據維度大於8維的時候,對輸入數據先每8個一組,通過第4級的三輸入加法器循環累加,從而支持16維的處理,具體結構參考圖4,如下:
[0121]本實施例中所述乘累加器支持的最大輸入數據維度N=8,運算元素列M=4 ;
[0122]桌球寄存器的數量為兩個,第一桌球寄存器設置在第2級倒數第1行,第二桌球寄存器設置在第3級倒數第2行,如圖4中加法器A314相連的桌球寄存器和加法器A323相連的桌球寄存器,設置在加法器A314相連的桌球寄存器的輸出分別與三輸入加法器A321、三輸入加法器A323和附加寄存器R324相連,設置在加法器A323相連的桌球寄存器的輸出分別與加法器A331和附加寄存器R333相連。
[0123]三輸入加法器的數量為兩個,第一三輸入加法器為設置在第3級倒數第2行的三輸入加法器A323,第二三輸入加法器為設置在第3級倒數第4行的三輸入加法器A321,三輸入加法器A323的輸入分別為加法器A312、加法器A313和加法器A314相連的寄存器,三輸入加法器A321的輸入分別為加法器A311、加法器A312和加法器A314相連的寄存器。
[0124]第2級運算元素為二輸入加法器,數量為四個,如圖4中加法器A311、加法器A312、加法器A313和加法器A314,加法器A311連接乘法器M31和乘法器M32相連的寄存器,以完成對乘法器M31的結果和乘法器M32的結果進行相加運算,加法器A312、加法器A313和加法器A314的作用類似。
[0125]第4級第1行運算元素為末級三輸入加法器A331,其中兩個輸入分別為加法器A321相連的寄存器和加法器A323相連的桌球寄存器,第三輸入為前一時刻該加法器A331的輸出送至加法器A331的輸入端。
[0126]所述附加寄存器的數量為5,如圖4中附加寄存器R322、附加寄存器R324、附加寄存器R332、附加寄存器R333和附加寄存器R334。
[0127]本實施例增設了末級三輸入加法器的運算元素,即第Μ級第1行的加法器為末級三輸入加法器,所述末級三輸入加法器的兩個輸入分別與前級的兩個加法器相連,所述末級三輸入加法器的輸出連接至所述末級三輸入加法器的第三個輸入。採用此技術方案,該乘累加器可以支持的最大維度可成倍增長。末級三輸入加法器首先計算一個Ν維向量的乘累加結果,並通過三輸入加法器返回至輸入,而後下一個時刻計算另外Ν維向量的乘累加結果,後面的乘累加結果與返回的乘累加結果再次相加,即最終得到了 2Ν維向量的累加結果。
[0128]以16維為例進行說明。當輸入數據大於8維時,例如是16維,由於本實施例所述乘累加器支持的最大輸入數據維度Ν=8,在不增加運算元素的情況下,通過對輸入數據先每8個分組,第1組中的8個數據乘累加的結果存在加法器Α331相連的寄存器中先不直接輸出,等待第2組中的8個數據要進行最後一次乘累加,即要送入加法器Α331進行相加時,第1組數據的結果通過加法器Α331的輸出端送入加法器Α331的輸入端和第2組的數據一起相加,即通過第4級的三輸入加法器循環累加,從而支持16維的處理。
[0129]本實施例,通過第4級的三輸入加法器完成循環累加,從而在不增加運算元素資源的情況下,支持16維的乘累加處理。
[0130]實施例四
[0131]圖5為本發明乘累加器實施例四的結構示意圖。在上述實施例基礎上,本實施例增加乘法器、加法器和附加寄存器的個數,可以一次就處理16維數據的乘累加運算。具體結構參考圖5。
[0132]本實施例中所述乘累加器支持的最大輸入數據維度Ν=16,運算元素列Μ=5。
[0133]桌球寄存器的數量為三個,第一桌球寄存器設置在第2級倒數第1行,第二桌球寄存器設置在第3級倒數第2行,第三桌球寄存器設置在第4級倒數第4行,參考如5中加法器Α418、加法器Α427和加法器Α435相連的桌球寄存器,其中與加法器Α418相連的桌球寄存器的輸出分別與加法器Α421、加法器Α427和附加寄存器R428相連,與加法器Α427相連的桌球寄存器的輸出分別與加法器Α431、加法器Α435和附加寄存器R437相連,與加法器Α435相連的桌球寄存器的輸出分別與加法器Α441和附加寄存器R445相連。
[0134]三輸入加法器的數量為六個,如圖5中加法器Α421、加法器Α423、加法器Α425、力口法器Α427、加法器Α431和加法器Α435。所述三輸入加法器的輸入分別與所述三輸入加法器的前一級運算元素中最接近的運算元素的寄存器相連,參考圖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級運算元素為二輸入加法器,如圖5中的加法器A411、加法器A412、加法器A413、加法器A414、加法器A415、加法器A416、加法器A417和加法器A418。
[0136]第5級第1行運算元素為一個二輸入加法器,如圖5中的加法器A441。
[0137]所述附加寄存器的數量為十七個,參考圖5中的第3級運算元素中的附加寄存器R422、附加寄存器R424、附加寄存器R426和附加寄存器R428,第4級運算元素中的附加寄存器R432、附加寄存器R433、附加寄存器R434、附加寄存器R436、附加寄存器R437和附加寄存器R438,第5級運算元素中的附加寄存器R442、附加寄存器R443、附加寄存器R444、附加寄存器R445、附加寄存器R446、附加寄存器R447和附加寄存器R448。
[0138]本實施例,通過增加乘法器、加法器和附加寄存器個數,可以一次完成16維數據的乘累加運算,同時通過桌球寄存器可以高效率處理多維數據隨機共存時乘累加效率,原理和上述實施例一樣,此處不再贅述。
[0139]實施例五
[0140]圖6為本發明乘累加器實施例五的結構示意圖。本實施例是在上述實施例五基礎上,不增加資源的情況下,通過將第5級第1行的二輸入加法器替換為三輸入加法器,如果輸入數據維度大於16維的時候,對輸入數據先每16個一組,通過第5級的三輸入加法器循環累加,從而支持32維的處理,具體結構參考圖6。
[0141]如圖6所示,本實施例中所述乘累加器支持的最大輸入數據維度N=16,運算元素列 M=5。
[0142]桌球寄存器的數量為三個,第一桌球寄存器設置在第2級倒數第1行,第二桌球寄存器設置在第3級倒數第2行,第三桌球寄存器設置在第4級倒數第4行,參考如5中加法器A518、加法器A527和加法器A535相連的桌球寄存器,其中與加法器A518相連的桌球寄存器的輸出分別與加法器A521、加法器A527和附加寄存器R528相連,與加法器A527相連的桌球寄存器的輸出分別與加法器A531、加法器A535和附加寄存器R537相連,與加法器A535相連的桌球寄存器的輸出分別與加法器A541和附加寄存器R545相連。
[0143]三輸入加法器的數量為六個,如圖5中加法器A521、加法器A523、加法器A525、力口法器A527、加法器A531和加法器A535。所述三輸入加法器的輸入分別與所述三輸入加法器的前一級運算元素中最接近的運算元素的寄存器相連,參考圖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級運算元素為二輸入加法器,如圖5中的加法器A511、加法器A512、加法器A513、加法器A514、加法器A515、加法器A516、加法器A517和加法器A518。
[0145]第5級第1行運算元素為一個末級三輸入加法器A541,如圖6中其中兩個輸入分別為加法器A531相連的寄存器和加法器A535相連的兵兵寄存器,第三輸入為前一時刻該加法器A541的輸出送至加法器A541的輸入端。
[0146]所述附加寄存器的數量為十七個,參考圖5中的第3級運算元素中的附加寄存器R522、附加寄存器R524、附加寄存器R526和附加寄存器R528,第4級運算元素中的附加寄存器R532、附加寄存器R533、附加寄存器R534、附加寄存器R536、附加寄存器R537和附加寄存器R538,第5級運算元素中的附加寄存器R542、附加寄存器R543、附加寄存器R544、附加寄存器R545、附加寄存器R546、附加寄存器R547和附加寄存器R548。
[0147]當輸入數據大於16維時,例如是32維,由於本實施例所述乘累加器支持的最大輸入數據維度N=16,在不增加運算元素的情況下,通過對輸入數據先每16個分組,第1組中的16個數據乘累加的結果存在加法器A541相連的寄存器中先不直接輸出,等待第2組中的16個數據要進行最後一次乘累加,即要送入加法器A531進行相加時,第1組數據的結果通過加法器A541的輸出端送入加法器A541的輸入端和第2組的數據一起相加,即通過第5級的三輸入加法器循環累加,從而支持32維的處理。
[0148]本實施例,通過第5級的三輸入加法器完成循環累加,從而在不增加運算元素資源的情況下,支持更高維度的乘累加處理。
[0149]實施例七
[0150]本發明實施例提供的乘累加器還可以根據實際需要,基於基本的運算元素進行靈活擴展,從而實現擴展性高、通用性強的乘累加器。
[0151]參考圖7a,圖7a為本發明乘累加器實施例七的運算元素結構圖。可以將各種運算元素以符號標記表示,從而便於形成符號標記形式的乘累加器拓撲圖。
[0152]圖7a中一個二輸入乘法器和一個寄存器組成的運算元素,用於對2個數據進行相乘運算並存儲運算結果,該運算元素表示為2*R ;
[0153]一個二輸入加法器和一個寄存器組成的運算元素,用於對2個數據進行相加運算並存儲運算結果,該運算元素表示為2+R ;
[0154]—個三輸入加法器和一個寄存器組成的運算兀素,三輸入加法器雖然有3個輸入通道但是只對同時輸入的2個數據進行相加,該運算元素表示為3+R ;
[0155]一個二輸入加法器和一個桌球寄存器組成的運算元素,用於對2個數據進行相加運算並能同時存儲兩個運算時刻的運算結果,該運算元素表示為2+RR ;
[0156]一個三輸入加法器和一個桌球寄存器組成的運算元素,用於對2個數據進行相加運算並能同時存儲兩個運算時刻的運算結果,該運算元素表示為3+RR ;
[0157]附加寄存器,用於獲取前級運算元素的輸出結果並輸出,該運算元素表示為R。
[0158]通過上述運算元素2*R、2+R、3+R、2+RR、3+RR和R的不同組合,運用到本發明任意實施例的乘累加器中,可以實現高效率,通用性強的自適應的乘累加器。
[0159]具體地,通過上述運算元素組成乘累加器拓撲結構擴展時,可以有兩種方式,一種是橫向拓撲,另一種是縱向拓撲。所述橫向拓撲是指不增加運算元素的擴展,利用在不同運算時刻向乘累加輸入分組的向量,而使累加器可支持不同維度的向量相乘。所述縱向拓撲是指通過增加運算元素的擴展來實現不同向量的乘累加。
[0160]例如實施例二中的乘累加器可以採用符號標記表示為圖7b所示的拓撲圖,圖7b為本發明乘累加器實施例七的橫向拓撲圖,可以支持8維、4維和2維向量或矩陣等輸入數據隨機出現進行高效率的乘累加。當該乘累加器需要支持更高維數據乘累加時,例如是16維時,如果不增加運算元素可採用橫向拓撲,可參考圖7c,圖7c為本發明乘累加器實施例七的又一橫向拓撲圖,可以支持16維、8維、4維和2維向量或矩陣等輸入數據隨機出現進行高效率的乘累加,圖7c的乘累加器和圖7b的乘累加器相比,沒有增加運算元素,只是將圖7b最後一級運算元素的2+R替換為一個3+R,即末級累加器。該乘累加器首先運算8維向量的乘累加結果,並輸入最後一級的三輸入加法器進行記錄,而後在另一運算時刻計算剩餘8維向量的乘累加結果,也輸入最後一級的三輸入加法器,與此前的乘累加結果相加,得到16維向量的乘累加結果。
[0161]如果增加運算元素可採用縱向拓撲,參考圖7d,圖7d為本發明乘累加器實施例七的縱向拓撲圖。同理,如果需要支持更高維度32維時,既可以採用縱向拓撲,又可採用橫向拓撲,也可以同時採用橫向拓撲和縱向拓撲,根據設計者的具體需求靈活使用。
[0162]本發明實施例還提供一種加速器,該加速器包括上述實施例任意所述的乘累加器,該加速器可高效率支持多維數據隨機出現時的乘累加運算,其技術效果類似,此處不再贅述。
[0163]本發明實施例還提供一種處理器,該處理器的數據運算元素由上述實施例任意所述的乘累加器組成,同時對處理器的指令或存儲單元進行相應修改,即可高效率支持多維數據隨機出現時的乘累加運算,其技術效果類似,此處不再贅述。
[0164]本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成。前述的程序可以存儲於一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括:R0M、RAM、磁碟或者光碟等各種可以存儲程序代碼的介質。
[0165]最後應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的範圍。
【權利要求】
1.一種乘累加器,其特徵在於,包括: M級運算元素列,其中,第I級運算元素列中包括N個運算元素,所述N個運算元素均為乘法器,第2至第M級運算元素列中的運算元素均為加法器,第1-Ι級運算元素列中的運算元素每兩個劃分為一組,第i級運算元素列中的每個加法器與第i_l級運算元素列中的一組運算元素相連,用於對所連接的運算元素的運算結果進行求和,任一所述乘法器或所述加法器連接有寄存器,所述寄存器用於在每個運算時刻記錄所述乘法器或所述加法器的運算結果並輸出,M為大於等於2的自然數,N=2m-1, i為自然數且l〈i彡M ; 與第一加法器連接的所述寄存器為桌球寄存器,所述第一加法器為所述加法器中的至少一個加法器,所述桌球寄存器用於存儲所述第一加法器在至少兩個運算時刻分別輸出的相加結果,並將所述相加結果在對應的運算時刻分別輸出給後一級運算元素列的加法器或作為所述乘累加器的運算結果輸出,所述相加結果為所述第一加法器的前一級運算元素列中的至少兩個運算元素分別輸出的運算結果之和。
2.根據權利要求1所述的乘累加器,其特徵在於,所述乘累加器還包括: 至少一個附加寄存器,設置於第3級至第M級運算元素列中,且每級運算元素列中的附加寄存器與加法器數量之和等於N/2,各附加寄存器與前級運算元素或前級附加寄存器相連,用於直接獲取前級的輸出結果並輸出。
3.根據權利要求1所述的乘累加器,其特徵在於,所述桌球寄存器包括至少兩個寄存器,所述兵乓寄存器中的各個寄存器用於在不同運算時刻記錄運算結果並輸出。
4.根據權利要求1所述的乘累加器,其特徵於: 所述兵乓寄存器設置在第2級至第M-1級運算元素列中,且設置在第m級的桌球寄存器與該級倒數第2~ (m-2)行的加法器連接,其中,2彡m^M-l0
5.根據權利要求1至4任一所述的乘累加器,其特徵於: 至少一個加法器為多輸入加法器,所述多輸入加法器與前級的三個以上運算元素分別相連,用於將所述三個以上運算元素的運算結果相加。
6.根據權利要求5所述的乘累加器,其特徵在於, 所述多輸入加法器為三輸入加法器,每個三輸入加法器與前級的三行運算元素分別相連,所述三輸入加法器設置在第3級至第M-1級運算元素列中,設置在第m級的三輸入加法器位於倒數第L行,其中L= (2~ (m-2)) Xn,L的取值範圍滿足(2~(m_2)) Xn ( N/2,其中,n ^ I, 3 ^ m ^ M-1 ; 所述三輸入加法器與上一級加法器中行數最接近的三個運算元素分別相連; 其它加法器為二輸入加法器,每個二輸入加法器與前級的兩行運算元素分別相連。
7.根據權利要求1至4任一所述的乘累加器,其特徵於: 第M級第I行的加法器為末級三輸入加法器,所述末級三輸入加法器的兩個輸入分別與前級的兩個加法器相連,所述末級三輸入加法器的輸出連接至所述末級三輸入加法器的第三個輸入。
8.根據權利要求1至4任一所述的乘累加器,其特徵在於:
N=8, M=4 ; 所述桌球寄存器的數量為一個,設置在第3級第2行,用於分別存儲兩個時刻輸出的兩個相加結果,其中一個輸出結果用於提供給第4級加法器,另一個輸出結果用於通過附加寄存器直接輸出; 所述附加寄存器的數量為一個,與上級所述桌球寄存器相連,獲取所述桌球寄存器的輸出結果並輸出。
9.根據權利要求6所述的乘累加器,其特徵在於:
N=8, M=4 ; 桌球寄存器的數量為兩個,分別為設置在第2級倒數第I行的第一兵乓寄存器和第3級倒數第2行的第二兵乓寄存器,所述第一桌球寄存器的輸出分別與第3級中的第I行、第3行和第4行運算元素相連,所述第二桌球寄存器的輸出分別與第4級中的第I行和第3行運算元素相連; 三輸入加法器的數量為兩個,分別為設置在第3級倒數第2行的第一三輸入加法器和第3級倒數第4行的第二三輸入加法器,所述第一三輸入加法器的輸入分別與第2級中的第I行、第2行和第4行運算元素相連,所述第二三輸入加法器的輸入分別與第2級中的第2行、第3行和第4行運算元素相連; 第2級的運算元素為二輸入加法器,數量為四個,其輸入分別與第I級乘法器相連; 第4級第I行運算元素為二輸入加法器,其輸入分別與第3級中第I行和第3行運算元素相連,其結果直接輸出; 附加寄存器的數量為5,分別設置在第3級第2行、第3級第4行、第4級第2行、第4級第3行和第4級第4行。
10.根據權利要求7所述的乘累加器,其特徵在於:
N=8, M=4 ; 桌球寄存器的數量為兩個,分別為設置在第2級倒數第I行的第一兵乓寄存器和第3級倒數第2行的第二桌球寄存器,所述第一桌球寄存器的輸出分別與第3級中的第I行、第3行和第4行運算元素相連,所述第二桌球寄存器的輸出分別與第4級中的第I行和第4行運算元素相連; 三輸入加法器的數量為兩個,分別為設置在第3級倒數第2行的第一三輸入加法器和第3級倒數第4行的第二三輸入加法器,所述第一三輸入加法器的輸入分別與第2級中的第I行、第2行和第4行運算元素相連,所述第二三輸入加法器的輸入分別與第2級中的第2行、第3行和第4行運算元素相連; 第2級運算元素為二輸入加法器,數量為四個,其輸入分別與第I級乘法器相連;所述第4級第I行運算元素為所述末級三輸入加法器,其中兩個輸入分別與第3級中第I行和第3行運算元素相連,第三輸入為前一時刻所述第三三輸入加法器的輸出送至所述第三三輸入加法器的輸入端; 附加寄存器的數量為5,分別設置在第3級第2行、第3級第4行、第4級第2行、第4級第3行和第4級第4行。
11.根據權利要求6所述的乘累加器,其特徵在於:
N=16, M=5 ; 桌球寄存器的數量為三個,分別為設置在第2級倒數第I行的第一兵乓寄存器、第3級倒數第2行的第二兵乓寄存器和第4級倒數第4行的第三兵乓寄存器,其中第一桌球寄存器的輸出分別與第3級中第I行、第3級第7行和第3級第8行設置的附加寄存器相連,第二桌球寄存器的輸出分別與第4級中第I行、第4級第5行和第4級第7行設置的附加寄存器相連,第三桌球寄存器的輸出分別與第5級中第I行加法器和第5級第5行設置的附加寄存器相連; 三輸入加法器的數量為六個,其中4個分別設置在第3級中的第1、3、5和7行,其中2個分別設置在第4級中的第I和5行,所述三輸入加法器的輸入分別與所述三輸入加法器的前一級運算元素中行數最接近的運算元素的寄存器相連; 第2級運算元素為二輸入加法器; 第5級第I行運算元素為一個二輸入加法器; 所述附加寄存器的數量為十七個,其中四個分別設置在第3級中的第2、4、6和8行,其中六個分別設置在第4級中的第2、3、4、6、7和8行,其餘七個分別設在第5級中除第I行之外。
12.根據權利要求6所述的乘累加器,其特徵在於:
N=16, M=5 ; 桌球寄存器的數量為三個,分別為設置在第2級倒數第I行的第一兵乓寄存器、第3級倒數第2行的第二兵乓寄存器和第4級倒數第4行的第三兵乓寄存器,其中第一桌球寄存器的輸出分別與第3級中第I行、第3級第7行和第3級第8行設置的附加寄存器相連,第二桌球寄存器的輸出分別與第4級中第I行、第4級第5行和第4級第7行設置的附加寄存器相連,第三桌球寄存器的輸出分別與第5級中第I行加法器和第5級第5行設置的附加寄存器相連; 三輸入加法器的數量為六個,其中4個分別設置在第3級中的第1、3、5和7行,其中2個分別設置在第4級中的第I和5行,所述三輸入加法器的輸入分別與所述三輸入加法器的前一級運算元素中行數最接近的運算元素的寄存器相連; 第2級運算元素為二輸入加法器; 所述第5級第I行運算元素為所述末級三輸入加法器,新增第三輸入為前一時刻該所述第5級的三輸入加法器的輸出送至所述三輸入加法器的輸入端; 所述附加寄存器的數量為十七個,其中四個分別設置在第3級中的第2、4、6和8行,其中六個分別設置在第4級中的第2、3、4、6、7和8行,其餘七個分別設在第5級中除第I行之外。
【文檔編號】G06F7/52GK104252331SQ201310270210
【公開日】2014年12月31日 申請日期:2013年6月29日 優先權日:2013年6月29日
【發明者】張慶學, 趙長虹 申請人:華為技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀