新四季網

一種矢量crc校驗指令的設計方法

2023-06-17 15:44:16 1

一種矢量crc校驗指令的設計方法
【專利摘要】本發明公開了一種DSP中矢量CRC校驗指令的設計方法,在DSP中設計了全新的矢量CRC執行單元,在此基礎上實現了矢量CRC5校驗指令、矢量CRC8校驗指令、矢量CRC16校驗指令、矢量CRC24校驗指令、矢量CRC32校驗指令以及利用這些專用指令設計的CRC校驗裝置。CRC指令運行效率高,使用簡單靈活,通用性強,大大簡化了對數據進行CRC校驗的程序設計。使用較少的硬體資源實現了多條矢量CRC校驗指令,節省了硬體資源,降低了成本。本發明充分利用了處理器設計中的流水線技術、多指令並發技術和單指令多數據技術,極大地提高了CRC校驗的效率,本發明的CRC指令具有吞吐率高、功耗低、成本低等特點。
【專利說明】一種矢量CRC校驗指令的設計方法

【技術領域】
[0001]一種DSP中矢量CRC校驗指令的設計方法,涉及通信晶片中的數位訊號處理,屬於通信、存儲領域,特別涉及數位訊號處理晶片中CRC校驗模塊的設計。

【背景技術】
[0002]CRC編碼是一種循環冗餘校驗碼(Cyclic Redundancy Check),是數據通信領域中最常用的一種差錯校驗碼,其特徵是信息欄位和檢驗欄位的長度可以任意選定。
[0003]CRC校驗的基本思想是利用線性編碼理論,在發送端根據要傳送的k位二進位碼序列,以一定的規則產生一個檢驗碼r位,附在信息後,構成一個新的二進位碼序列共(k+r)位,最後發送出去。接收端根據同樣的規則校驗,以確定傳送中是否出錯。
[0004]傳統的CRC校驗實現方法有軟體方法和硬體方法,軟體方法主要有直接計算法和查表法,直接計算法適用於所有長度的數據校驗,最為靈活,但由於是按位計算,是一種串行計算方法,效率差,速度慢。查表法按字節計算CRC校驗,是一種並行計算方法,但是需要提前存儲一個256位元組的表格,會佔用較多的硬體資源。硬體實現方法的優點是計算速度快、效率高,但靈活性較差、不具有通用性,成本高。
[0005]隨著通訊技術的發展,對數據的處理效率要求越來越高,越來越多的設計方法選擇了 CRC的硬體實現方式,為了克服硬體實現方式靈活性和通用性差的缺點,在處理器中設計CRC校驗指令逐漸成為一種趨勢,Intel公司提出了一套靈活CRC指令集(CN102096609 A),任給一個CRC多項式和數據,都可以對數據進行多項式規定的CRC校驗,其實現過程是首先通過多項式求模運算對CRC多項式進行擴展,得到預計算擴展多項式,然後對數據進行混洗,混洗後利用擴展多項式反覆對數據在Galois域上做多項式除法,最後得到CRC校驗結果,此種CRC指令集雖然使用靈活,但是實現流程複雜,運行效率較低。
[0006]本DSP主要面向通信領域,使用的CRC校驗種類比較固定,所以直接在DSP中設計了 CRC的專用指令,指令設計簡單,運行效率高,設計方法與Intel的靈活CRC指令集有本質的區別。通過軟體編程調用這些CRC指令即可快速完成CRC校驗,實現簡單、快速且節省資源。本發明利用SIMD(Single Instruct1n Multiple Data)技術、流水線技術和指令並發技術大幅提高了 CRC校驗的速率。同時,本CRC校驗的專用指令共享了處理器的部分硬體資源,節省了硬體開銷。


【發明內容】

[0007]本發明要解決的技術問題是:本發明設計了一種全新的矢量CRC執行單元,在此基礎上完實現了矢量CRC5校驗指令、矢量CRC8校驗指令、矢量CRC16校驗指令、矢量CRC24校驗指令、矢量CRC32校驗指令的設計以及使用這些指令設計的CRC校驗裝置。
[0008]本發明解決其技術問題所採用的技術方案是:全新的矢量CRC執行單元由硬體復用管理單元和狀態寄存器並行轉移單元組成,硬體復用管理單元控制各條矢量CRC指令充分復用硬體資源,可以保證使用較少的硬體資源即可完成多條矢量CRC指令的設計,減少了硬體開銷;狀態寄存器並行轉移單元在輸入8bit數據後只需要一個周期即可完成狀態寄存器值的轉移,運行效率高。
[0009]矢量CRC5校驗指令是8路並行CRC校驗指令,每次調用該指令可計算8bit數據,輸入Sbit數據後通過推導出的CRC5並行計算公式一個周期即可完成CRC計算,將所有數據計算完成後,結果寄存器中剩餘的5bit數據即是CRC校驗結果。
[0010]矢量CRC8校驗指令是8路並行CRC校驗指令,每次調用該指令可計算Sbit數據,輸入Sbit數據後通過推導出的CRC8並行計算公式一個周期即可完成CRC計算,將所有數據計算完成後,結果寄存器中剩餘的8bit數據即是CRC校驗結果。
[0011 ] 矢量CRC16校驗指令,每次調用該指令可計算Sbit數據,輸入Sbit數據後通過推導出的CRC16並行計算公式一個周期即可完成CRC計算,將所有數據計算完成後,結果寄存器中剩餘的16bit數據即是CRC校驗結果。
[0012]矢量CRC24校驗指令,每次調用該指令可計算Sbit數據,輸入Sbit數據後通過推導出的CRC24並行計算公式一個周期即可完成CRC計算,將所有數據計算完成後,結果寄存器中剩餘的24bit數據即是CRC校驗結果。
[0013]矢量CRC32校驗指令,每次調用該指令可計算Sbit數據,輸入Sbit數據後通過推導出的CRC32並行計算公式一個周期即可完成CRC計算,將所有數據計算完成後,結果寄存器中剩餘的32bit數據即是CRC校驗結果。
[0014]本方法不僅適用於以上CRC指令的設計,也適用了任意多項式CRC指令的設計,變換CRC的多項式,同樣可以利用本方法設計出矢量CRC指令。
[0015]利用本方法不僅可以設計8路並行的CRC指令,也可以設計16路、32路並行的CRC指令,甚至可以設計任意路並行的CRC指令。
[0016]本方法的
【發明內容】
還包括利用這些CRC指令設計的CRC校驗裝置,利用本方法設計的CRC指令和處理器的讀取、存儲數據指令完成CRC校驗,在此CRC校驗裝置中充分利用了處理器的流水線技術和多指令並發技術,可以極大的提高CRC校驗的效率。
[0017]本發明的有益效果是:一種DSP中矢量CRC校驗指令的設計方法,在DSP中設計了全新的矢量CRC執行單元,在此基礎上實現了矢量CRC5校驗指令、矢量CRC8校驗指令、矢量CRC16校驗指令、矢量CRC24校驗指令、矢量CRC32校驗指令以及利用這些專用指令設計的CRC校驗裝置。此設計方法設計的CRC專用指令,運行效率高,使用簡單靈活,通用性強,大大簡化了對數據進行CRC校驗的程序設計。同時,CRC執行單元包含硬體復用管理單元,可以保證各條CRC指令充分復用DSP的硬體資源,使用較少的硬體資源實現了多條矢量CRC校驗指令,節省了硬體資源,降低了成本。另外,本設計方法充分利用了處理器設計中的流水線技術、多指令並發技術和單指令多數據(Single Instruct1n Multiple Data, SIMD)技術,極大地提高了 CRC校驗的效率。此方法設計的CRC指令具有吞吐率高、功耗低、成本低等特點。

【專利附圖】

【附圖說明】
[0018]圖1CRC指令實施例的系統框圖;
[0019]圖2圖1所示的處理器實施例的框圖;
[0020]圖3CRC指令執行單元實施例的框圖;
[0021]圖4CRC5實現原理框圖;
[0022]圖5CRC8實現原理框圖;
[0023]圖6多項式為0x1021的CRC16實現原理框圖;
[0024]圖7多項式為0x8005的CRC16實現原理框圖;
[0025]圖8多項式為0x04clldb7的CRC32實現原理框圖;
[0026]圖9利用本發明設計的CRC指令實現的CRC校驗實現流程圖;

【具體實施方式】
[0027]為了使本發明所要解決的技術問題、技術方案及有益效果更佳清楚、明白,以下結合附圖和實施例,對本發明進行進一步的詳細說明,應當理解,此處所描述的具體實施例僅用於解釋本發明,並不用於限定本發明。
[0028]本實施例使用的DSP是矢量數位訊號處理器,數據總線位寬是16bit,最多支持8個16bit數據的並行乘加運算,擁有矢量viterbi指令,具有超高的數位訊號處理性能。本發明使用的DSP並不局限於本實施例所使用的DSP,在任意的DSP中均可按照本設計提供的方法完成CRC指令的設計。
[0029]圖1是本發明所設計的CRC指令實施例的系統100框圖,系統100包括處理器101、程序存儲器106和數據存儲器108,處理器通過16bit位寬的總線對程序存儲器進行訪問,通過16bit位寬的數據總線對數據存儲器進行訪問。
[0030]處理器101包括程序訪問控制器102、數據訪問控制器104和CRC執行單元103,程序訪問控制器102控制CRC指令的讀取,數據訪問控制器104控制計算數據的讀取和CRC結果的存儲,CRC執行單元103是CRC指令的執行單元。
[0031]圖2是圖1所示的處理器101的實施例框圖,框圖展示了 CRC指令的執行過程,執行時需要3級流水線,在第一周期,在程序訪問控制器的控制下,通過程序數據總線105將程序存儲器106中的CRC指令讀取到寄存器堆201中,此過程稱為流水線的取指階段。在第二周期,處理器將取出的CRC指令送入指令解碼單元202進行解碼,將解碼結果存儲到寄存器堆201的寄存器中,此過程稱為流水線的解碼階段。在第三周期,根據解碼結果在CRC執行單元103中執行CRC指令,此過程稱為流水線的執行階段,此過程需要一個周期,所以CRC指令為單周期指令。
[0032]本發明使用的DSP支持指令並發執行,在執行CRC的同時可以執行數據的訪問指令,在數據訪問控制器104的控制下,通過數據總線107將數據從數據存儲器108中讀取到寄存器堆201中,在CRC的執行階段將數據載入到CRC執行單元103中,指令執行後將數據緩存到寄存器中,CRC計算完成後將結果通過數據訪問指令存儲到存儲器108中。
[0033]以矢量CRC32指令的實施例為例說明指令的執行過程,在CRC執行單元103中執行的矢量CRC32指令(宏指令)用符號表示為:
[0034]crc32_0x04clldb7L(rI, r2, r3)
[0035]其中,rl、r2、r3是三個16bit的寄存器。矢量CRC32指令具有三個操作數,rl、r2和r3都是源操作數,同時r2和r3也是目的操作數據,CRC校驗結果存儲在r2和r3中。第一源操作數(「opl」)存儲在寄存器堆201中的rl中,第一源操作數是將要進行CRC校驗的數據;第二源操作數(「op2」)和第三源操作數(「op3」)存儲在寄存器堆201中的r2和r3中,r2存儲的是初始CRC餘數的低16bit,r3存儲的是初始CRC餘數的高16bit。同時,r2和r3也是指令的目的操作數,CRC指令運算後的新餘數再存回到r2和r3中,r2存儲新CRC餘數的低16bit,r3存儲新CRC餘數的高16bit。
[0036]rl是16bit寄存器,而指令crc32_0x04clldb7L是8bit並行指令,只對rl中的低Sbit數據進行CRC計算,使用如下的指令對rl中的高Sbit數據進行CRC計算:crc32_0x04clldb7H(rI, r2, r3)。
[0037]圖3顯示了 CRC指令的執行過程,在流水線的執行階段,硬體復用管理單元根據解碼結果控制狀態寄存器並行轉移單元的運行,寄存器並行轉移單元將3個源操作數據載入,一個周期完成狀態寄存器的轉移,狀態寄存器中的值即是新的CRC餘數,最後將狀態寄存器中的值存儲到目的寄存器r2和r3中。
[0038]以下以矢量CRC5指令、矢量CRC8指令、矢量CRC16指令和矢量CRC32指令的實施例來說明硬體復用管理單元和狀態寄存器並行轉移單元的設計。
[0039]CRC5的生成多項式為:g(x) = x5+x2+l.其實現原理框圖如圖4所示。設Hii為輸入信息序列,i = I,2,...,n,Rji表示輸入Hii後移位寄存器Rj (j = 0,1,2,3,4)的狀態值,由實現原理框圖可得:
[0040]R0i = R4(H) ? Hii
[0041]Rli = R0(H)
[0042]R2i = Ri(1-1) ? 尺4(卜1) ? mi
[0043]R3i = R2(1-1)
[0044]R4i = R3(H)
[0045]由此可推導出八路並行CRC校驗公式為:
[0046]R08 = Rciq ? R2q ? R3q ? m2 ? m3 ? m5 ? m8
[0047]R18 = R10 ffi R30 ffi R40 ffi Iii1 ? m2 ? m4 ? m7
[0048]R28 = Rw ? R3。? R4。? Iii1 ? m2 ? m5 ? m6 ? m8①
[0049]R38 = R00 ffi R10 ffi R40 ffi Iii1 ? m4 ? m5 ? m7
[0050]R48 = R10 ffi R20 ffi m3 ? m4 ? m6
[0051]寫成矩陣形式為:
[0052]R8 = Scrc5R0②
[0053]其中,R8 = [R08, R18, R28, R38, R48]H,表示輸入8bit數據後新的CRC5狀態寄存器的值,R0 = [R00,R10,R20, R30, R40, In1, m2, m3, m4, m5, m6, m7, m8, ]H,是由 CRC 初始餘數和 CRC 校驗數據組合成的向量,

【權利要求】
1.一種矢量CRC檢驗指令的設計方法,設計了一種全新的矢量CRC執行單元,在此基礎上實現了矢量CRC5校驗指令、矢量CRC8校驗指令、矢量CRC16校驗指令、矢量CRC24校驗指令、矢量CRC32校驗指令的設計以及使用這些指令設計的CRC校驗裝置。
2.如權利要求1所述的一種矢量CRC檢驗指令的設計方法,其特徵在於,所述矢量CRC執行單元包括硬體復用管理單元和狀態寄存器並行轉移單元,硬體復用管理單元控制各條矢量CRC指令充分復用硬體資源,可以保證使用較少的硬體資源即可完成多條矢量CRC指令的設計,減少了硬體開銷;狀態寄存器並行轉移單元在輸入8bit數據後只需要一個周期即可完成狀態寄存器值的轉移,執行時間短,運行效率高。
3.如權利要求1所述的一種矢量CRC檢驗指令的設計方法,其特徵在於,所述的矢量CRC5校驗指令:是一條8路並行CRC校驗指令,每次將初始CRC餘數和8bit數據送入CRC執行單元,一個周期後即可得出新的CRC餘數,將所有數據計算完成後,狀態寄存器中剩餘的5bit數據即是CRC校驗結果。
4.如權利要求1所述的一種矢量CRC檢驗指令的設計方法,其特徵在於,所述的矢量CRC8校驗指令:是一條8路並行CRC校驗指令,每次將初始CRC餘數和8bit數據送入CRC執行單元,一個周期後即可得出新的CRC餘數,將所有數據計算完成後,狀態寄存器中剩餘的8bit數據即是CRC校驗結果。
5.如權利要求1所述的一種矢量CRC檢驗指令的設計方法,其特徵在於,所述矢量CRC16校驗指令:是一條8路並行CRC校驗指令,每次將初始CRC餘數和8bit數據送入CRC執行單元,一個周期後即可得出新的CRC餘數,將所有數據計算完成後,狀態寄存器中剩餘的16bit數據即是CRC校驗結果。
6.如權利要求1所述的一種矢量CRC檢驗指令的設計方法,其特徵在於,所述的矢量CRC24校驗指令:是一條8路並行CRC校驗指令,每次將初始CRC餘數和8bit數據送入CRC執行單元,一個周期後即可得出新的CRC餘數,將所有數據計算完成後,狀態寄存器中剩餘的24bit數據即是CRC校驗結果。
7.如權利要求1所述的一種矢量CRC檢驗指令的設計方法,其特徵在於,所述的矢量CRC32校驗指令:是一條8路並行CRC校驗指令,每次將初始CRC餘數和8bit數據送入CRC執行單元,一個周期後即可得出新的CRC餘數,將所有數據計算完成後,狀態寄存器中剩餘的32bit數據即是CRC校驗結果。
8.如權利要求1所述的一種矢量CRC檢驗指令的設計方法,其特徵在於,本設計方法不僅適用於設計如權利要求1所述的各條CRC指令,也適用於設計任意多項式的CRC指令,按本文提供的設計方法可以設計出任意多項式的CRC校驗指令。
9.如權利要求1所述的一種矢量CRC檢驗指令的設計方法,其特徵在於,本設計方法可以設計如權利要求2至權利要求6所述的8路並行的CRC指令,還可以設計任意路並行的CRC指令。
10.如權利要求1所述的一種矢量CRC檢驗指令的設計方法,其特徵在於,所述的CRC校驗裝置:利用本方法設計的CRC指令和處理器的讀取、存儲數據指令完成CRC校驗,在此CRC校驗裝置中充分利用了流水線技術和多指令並發技術,可以極大的提高CRC校驗的效率。
【文檔編號】G06F11/10GK104133736SQ201410366239
【公開日】2014年11月5日 申請日期:2014年7月29日 優先權日:2014年7月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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀