一種適用于向量處理器的通用crc并行計算部件及方法
【專利摘要】本發(fā)明公開了一種向量處理器的通用CRC并行計算部件及方法。其中所述計算部件包括:16個子數(shù)據塊CRC編碼器和一個子塊編碼合并模塊,其中每個子數(shù)據塊CRC編碼器接收將待編碼信息等分成16個子數(shù)據塊后的其中一個子數(shù)據塊,并通過所述編碼系數(shù)矩陣對其進行編碼,所述子塊編碼合并模塊將16個子數(shù)據塊CRC編碼器輸出的編碼結果進行合并后輸出編碼數(shù)據,其輸出反饋至第一個子數(shù)據塊CRC編碼器,與第一個子數(shù)據塊進行異或后參與編碼。本發(fā)明提出的上述方案具有結構簡單、計算并行度高、通用性強、適用于向量處理器實現(xiàn)的優(yōu)點,可用于光通信、超寬帶移動無線通信等高速通信領域中的CRC編碼。
【專利說明】一種適用于向量處理器的通用CRC并行計算部件及方法
【技術領域】
[0001 ] 本發(fā)明涉及計算機向量處理器【技術領域】,具體涉及一種適用于向量處理器的通用CRC并行計算部件及方法。
【背景技術】
[0002]在通信系統(tǒng)中,由于存在各種各樣的干擾信號,會導致通信過程中出現(xiàn)誤碼。為了有效檢測誤碼存在,發(fā)送端在信息數(shù)據后增加CRC校驗碼,接收端對接收到的信息數(shù)據進行同樣的CRC計算,通過與附加CRC校驗碼進行比較,可以判斷出數(shù)據傳輸是否有誤碼。
[0003]經典的CRC校驗方法一般采用線性反饋移位寄存器(LFSR)實現(xiàn),該方法按位計算數(shù)據CRC編碼,速度極慢;為提高CRC編碼計算速度,有人又提出采取查表法實現(xiàn)數(shù)據CRC編碼,該方法按照CRC生成多項式長度將信息數(shù)據分為多個子數(shù)據塊,然后將上次結果與當前子數(shù)據塊相異或后查表得到當前子數(shù)據塊CRC編碼,該方法前后兩個子數(shù)據塊間存在數(shù)據相關,子數(shù)據塊之間只能順序計算,速度仍然較慢。
[0004]在光通信、超寬帶移動無線通信等高速通信領域,由于數(shù)據傳輸量大,查表法也無法滿足需求,同時一套通信系統(tǒng)中存在幾種CRC編碼方法,如在LTE中就存在CRC24A、CRC24B、CRC16、CRC8四種編碼方法,這就要求采用一種針對各種CRC生成多項式的并行度更高的計算方法實現(xiàn)CRC編碼過程。
[0005]向量處理器是一種典型的SMD指令集,可以一次對一維數(shù)組進行并行計算,如果能針對向量處理器設計一種CRC并行計算部件,即將CRC編碼過程分解適合寬度的數(shù)據同時計算,則可以成倍提高CRC編碼效率。
【發(fā)明內容】
[0006]為解決現(xiàn)有技術中存在的上述缺陷,本發(fā)明公開了一種向量處理器的CRC并行計算部件和方法。
[0007]根據本發(fā)明一方面,其提供了一種向量處理器的通用CRC并行計算部件,其包括:16個子數(shù)據塊CRC編碼器和一個子塊編碼合并模塊,其中每個CRC編碼器接收將待編碼信息等分成16個子數(shù)據塊后的其中一個子數(shù)據塊,并通過所述編碼系數(shù)矩陣對其進行編碼,所述子塊編碼合并模塊將16個子數(shù)據塊CRC編碼器輸出的編碼結果進行合并后輸出編碼數(shù)據,其輸出反饋至第一個子數(shù)據塊CRC編碼器,與第一個子數(shù)據塊進行異或后參與編碼。
[0008]根據本發(fā)明另一方面,其還提供了一種適用于向量處理器的通用CRC并行計算方法,其包括:
[0009]步驟1、根據CRC生成多項式生成各子數(shù)據塊對應的編碼系數(shù)矩陣,并配置到CRC并7TT計算部件中;
[0010]步驟2、將待編碼數(shù)據按照512比特長度分割為N個預備數(shù)據塊;
[0011 ] 步驟3、將預備數(shù)據塊按照32比特長度分割為16個子數(shù)據塊,并通過16個獨立的子數(shù)據塊編碼器同時計算出16個子數(shù)據塊CRC編碼結果;[0012]步驟4、將16個子數(shù)據塊CRC編碼進行合并,得到預備數(shù)據塊編碼結果;
[0013]步驟5、將預備數(shù)據塊編碼結果與下一個預備數(shù)據塊低32位子數(shù)據塊進行異或;
[0014]步驟6、重復步驟3-5,直到將所有預備數(shù)據塊計算完畢,即得到待編碼數(shù)據的CRC編碼結果。
[0015]上述CRC編碼計算方法和部件可同時并行計算512位CRC編碼,與傳統(tǒng)的線性反饋移位寄存器方法相比,計算速度可提高512倍。
【專利附圖】
【附圖說明】
[0016]圖1示出了本發(fā)明中向量處理器的通用CRC并行計算部件框圖;
[0017]圖2示出了本發(fā)明中全部數(shù)據塊CRC編碼流程圖;
[0018]圖3示出了本發(fā)明中預備數(shù)據塊分割示意圖;
[0019]圖4示出了本發(fā)明中線性反饋移位寄存器CRC編碼電路圖;
[0020]圖5示出了本發(fā)明中預備數(shù)據塊CRC編碼框圖;
[0021]圖6示出了本發(fā)明中子數(shù)據塊CRC編碼框圖;
[0022]圖7示出了本發(fā)明中子數(shù)據塊編碼合并模塊框圖;
[0023]圖8示出了本發(fā)明中CRC碼長適配模塊框圖;
[0024]圖9示出了本發(fā)明中不同碼長編碼系數(shù)矩陣組成圖。
【具體實施方式】
[0025]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下結合具體實施例,并參照附圖,對本發(fā)明作進一步的詳細說明。
[0026]圖1示出了本發(fā)明提出的一種向量處理器的通用CRC并行計算部件結構圖。如圖1所示,其包括:16個子數(shù)據塊CRC編碼器和一個子塊編碼合并模塊,其中每個CRC編碼器接收將待編碼信息等分成16個子數(shù)據塊后的其中一個子數(shù)據塊,并通過所述編碼系數(shù)矩陣對其進行編碼,所述子塊編碼合并模塊將16個子數(shù)據塊CRC編碼器輸出的編碼結果進行合并后輸出編碼數(shù)據,其輸出反饋至第一個子數(shù)據塊CRC編碼器,與第一個子數(shù)據塊進行異或后參與編碼。
[0027]名詞解釋:
[0028]CRC生成多項式G:是接受方和發(fā)送方的一個約定多項式,在發(fā)送方,利用生成多項式對信息多項式做模2除生成校驗碼,在接受方利用生成多項式對收到的編碼多項式做模2除檢測錯誤,生成多項式長度N等于生成多項式最高次冪。
[0029]預備數(shù)據塊:為方便向量處理器進行計算,將待編碼數(shù)據分割為N個512比特長度的預備數(shù)據塊。
[0030]子數(shù)據塊Dn:為提高CRC的并行計算能力,將預備數(shù)據塊分割為16個32比特長度的子數(shù)據塊。
[0031]編碼特征矩陣A:由CRC生成多項式組成和單位矩陣按照下式組成的矩陣:
【權利要求】
1.一種向量處理器的通用CRC并行計算部件,其包括:16個子數(shù)據塊CRC編碼器和一個子塊編碼合并模塊,其中每個子數(shù)據塊CRC編碼器接收將待編碼信息等分成16個子數(shù)據塊后的其中一個子數(shù)據塊,并通過所述編碼系數(shù)矩陣對其進行編碼,所述子塊編碼合并模塊將16個子數(shù)據塊CRC編碼器輸出的編碼結果進行合并后輸出編碼數(shù)據,其輸出反饋至第一個子數(shù)據塊CRC編碼器,與第一個子數(shù)據塊進行異或后參與編碼。
2.如權利要求1所述的向量處理器的通用CRC并行計算部件,其中,所述子數(shù)據塊編碼器由32個位乘異或單元組成,,每個位乘異或單元輸入為子數(shù)據塊和編碼系數(shù)矩陣對應的一行,其按對應位進行乘法后得到32個比特數(shù)據,再規(guī)約異或得到I位輸出結果,32個位乘異或單元產生32個比特,合并組成一個32比特輸出結果。
3.如權利要求1所述的向量處理器的通用CRC并行計算部件,其中,子塊編碼數(shù)據合并單元共由15個32比特位異或單元組成,15個位異或單元由4級組成,其中第一級8個、第二級4個、第三級2個、第四級I個,經過4級的位異或單元運算,將16個子數(shù)據塊編碼結果合并為I個32比特的數(shù)據,最后通過判斷CRC的碼長,將編碼結果縮減到指定碼長。
4.如權利要求3所述的向量處理器的通用CRC并行計算部件,其中,所述子塊編碼數(shù)據合并單元還包括碼長適配模塊,其由3級位異或單元組成,第一級可將輸入的32比特數(shù)據按照前后分割為2段16比特數(shù)據,通過異或后得到16比特結果;第二級可將第一級產生的16比特數(shù)據按照前后分割為2段8比特數(shù)據,通過異或后得到8比特結果;第三級可將輸入的8比特數(shù)據按照前后分割為2段4比特數(shù)據,通過異或后得到4比特結果;待所有數(shù)據生成完畢后,通過選擇電路將對 應碼長的編碼數(shù)據輸出,此數(shù)據即為預備數(shù)據塊編碼數(shù)據。
5.如權利要求1所述的向量處理器的通用CRC并行計算部件,其適用于32、16、8、4碼長的CRC編碼。
6.一種適用于向量處理器的通用CRC并行計算方法,其包括: 步驟1、根據CRC生成多項式生成各子數(shù)據塊對應的編碼系數(shù)矩陣,并配置到CRC并行計算部件中; 步驟2、將待編碼數(shù)據按照512比特長度分割為N個預備數(shù)據塊; 步驟3、將預備數(shù)據塊按照32比特長度分割為16個子數(shù)據塊,并通過16個獨立的子數(shù)據塊編碼器同時計算出16個子數(shù)據塊CRC編碼結果; 步驟4、將16個子數(shù)據塊CRC編碼進行合并,得到預備數(shù)據塊編碼結果; 步驟5、將預備數(shù)據塊編碼結果與下一個預備數(shù)據塊低32位子數(shù)據塊進行異或; 步驟6、重復步驟3-5,直到將所有預備數(shù)據塊計算完畢,即得到待編碼數(shù)據的CRC編碼結果。
7.如權利要求6所述的方法,其中,步驟I中編碼系數(shù)矩陣由生成多項式預先計算得到。
8.如權利要求6所述的方法,其中,預備數(shù)據塊CRC編碼等效公式如下所示: CRCmi2 =M1 0CM:, ΦΜ, ^D1 ΘΜ2 0D2 ? …?M16 ? D16 其中,向量CRC對應CRC編碼結果;向量D為子數(shù)據塊,每塊數(shù)據為32比特;矩陣M為子數(shù)據塊對應的編碼系數(shù)矩陣,其中i表示當前時刻。
9.如權利要求8所述的方法,其中,編碼系數(shù)矩陣為編碼特征矩陣的n*N次冪,其中,N為CRC編碼的碼長,η表示第η個子數(shù)據塊的編碼系數(shù)矩陣,其中編碼特征矩陣如下所示:
【文檔編號】H04L1/00GK103731239SQ201310750101
【公開日】2014年4月16日 申請日期:2013年12月31日 優(yōu)先權日:2013年12月31日
【發(fā)明者】王東琳, 張峰, 田園, 徐曉梅 申請人:中國科學院自動化研究所