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