【技術(shù)實(shí)現(xiàn)步驟摘要】
一種CRC碼并行計(jì)算方法、裝置及其應(yīng)用
本專利技術(shù)涉及數(shù)據(jù)處理
,具體涉及一種CRC碼并行計(jì)算方法、裝置及其應(yīng)用。
技術(shù)介紹
在數(shù)據(jù)存儲(chǔ)和傳輸領(lǐng)域,由于干擾等各方面的影響,傳輸?shù)臄?shù)據(jù)可能會(huì)出現(xiàn)錯(cuò)誤,為了提高數(shù)據(jù)傳輸?shù)目煽啃裕托枰獙?duì)數(shù)據(jù)進(jìn)行檢查或糾錯(cuò)的編碼手段。循環(huán)冗余校驗(yàn)(CyclicRedundancyCheck,CRC)由于其糾錯(cuò)能力強(qiáng),硬件開銷小且易于實(shí)現(xiàn)的優(yōu)點(diǎn),已經(jīng)被廣泛應(yīng)用于數(shù)據(jù)通信領(lǐng)域。CRC校驗(yàn)的本質(zhì)是基于特定的多項(xiàng)式對(duì)數(shù)據(jù)進(jìn)行一系列的運(yùn)算,再將計(jì)算的結(jié)果附加在數(shù)據(jù)的結(jié)尾一起傳輸,接收方通過相同的算法對(duì)數(shù)據(jù)進(jìn)行計(jì)算,再將得到的結(jié)果與收到的CRC結(jié)果進(jìn)行比對(duì),若結(jié)果一致則表明傳輸無誤。傳統(tǒng)的CRC校驗(yàn)算法主要分為兩種:串行位算法和并行多字節(jié)算法:串行位算法實(shí)現(xiàn)方式最為簡單,但一個(gè)時(shí)鐘周期只能計(jì)算一位數(shù)據(jù),效率較低,不適合應(yīng)用于高速率的數(shù)據(jù)傳輸;并行多字節(jié)算法一個(gè)時(shí)鐘周期可以計(jì)算一個(gè)或多個(gè)字節(jié)的數(shù)據(jù),但該算法需要在接收完完整的數(shù)據(jù)后才可以計(jì)算,而實(shí)際的存儲(chǔ)芯片一次能讀出的數(shù)據(jù)量確是有限的,這樣就需要消耗額外的寄存器對(duì)數(shù)據(jù)進(jìn)行暫存。例如存儲(chǔ)陣列每次讀出64比特?cái)?shù)據(jù)并且在4個(gè)時(shí)鐘后讀出新的數(shù)據(jù),為了不額外緩存數(shù)據(jù),就需要在這4個(gè)時(shí)鐘內(nèi)計(jì)算出該64比特?cái)?shù)據(jù)的CRC校驗(yàn)值,如何實(shí)現(xiàn)上述并行CRC計(jì)算過程并避免傳統(tǒng)并行CRC計(jì)算帶來的高硬件復(fù)雜度,是亟需解決的問題。
技術(shù)實(shí)現(xiàn)思路
針對(duì)現(xiàn)有技術(shù)的不足,本專利技術(shù)提供一種CRC碼并行計(jì)算方法、裝置及應(yīng)用,特別適用于存儲(chǔ)裝置的讀 ...
【技術(shù)保護(hù)點(diǎn)】
1.一種CRC碼并行計(jì)算方法,用于計(jì)算生成待編碼數(shù)據(jù)的CRC校驗(yàn)碼,其特征在于,所述待編碼數(shù)據(jù)包括至少一組等比特位數(shù)據(jù),所述計(jì)算方法包括:/n獲取CRC生成多項(xiàng)式,處理生成一校驗(yàn)基準(zhǔn)矩陣;/n基于校驗(yàn)基準(zhǔn)矩陣對(duì)第一組數(shù)據(jù)進(jìn)行計(jì)算處理生成第一CRC校驗(yàn)碼;/n將第一CRC校驗(yàn)碼與第二組數(shù)據(jù)執(zhí)行異或操作,并基于校驗(yàn)基準(zhǔn)矩陣對(duì)異或結(jié)果計(jì)算處理生成第二CRC校驗(yàn)碼;/n依次對(duì)后續(xù)組數(shù)據(jù)重復(fù)執(zhí)行上一步驟,并將最終生成的CRC校驗(yàn)碼作為待編碼數(shù)據(jù)的CRC校驗(yàn)碼輸出。/n
【技術(shù)特征摘要】
1.一種CRC碼并行計(jì)算方法,用于計(jì)算生成待編碼數(shù)據(jù)的CRC校驗(yàn)碼,其特征在于,所述待編碼數(shù)據(jù)包括至少一組等比特位數(shù)據(jù),所述計(jì)算方法包括:
獲取CRC生成多項(xiàng)式,處理生成一校驗(yàn)基準(zhǔn)矩陣;
基于校驗(yàn)基準(zhǔn)矩陣對(duì)第一組數(shù)據(jù)進(jìn)行計(jì)算處理生成第一CRC校驗(yàn)碼;
將第一CRC校驗(yàn)碼與第二組數(shù)據(jù)執(zhí)行異或操作,并基于校驗(yàn)基準(zhǔn)矩陣對(duì)異或結(jié)果計(jì)算處理生成第二CRC校驗(yàn)碼;
依次對(duì)后續(xù)組數(shù)據(jù)重復(fù)執(zhí)行上一步驟,并將最終生成的CRC校驗(yàn)碼作為待編碼數(shù)據(jù)的CRC校驗(yàn)碼輸出。
2.根據(jù)權(quán)利要求1所述的一種CRC碼并行計(jì)算方法,其特征在于,所述校驗(yàn)基準(zhǔn)矩陣通過以下方法生成,包括:
根據(jù)CRC生成多項(xiàng)式配置產(chǎn)生一組信息碼;
匹配生成第一信息碼的校驗(yàn)基準(zhǔn)值;
基于第一信息碼的校驗(yàn)基準(zhǔn)值依次生成后續(xù)信息碼的校驗(yàn)基準(zhǔn)值,具體包括:
若第n-1(n≥2)信息碼的校驗(yàn)基準(zhǔn)值最高位數(shù)據(jù)為0,則將第n-1信息碼的校驗(yàn)基準(zhǔn)值左移一位得到第n信息碼的校驗(yàn)基準(zhǔn)值;
否則將第n-1個(gè)信息碼的校驗(yàn)基準(zhǔn)值左移一位后再與第一信息碼的校驗(yàn)基準(zhǔn)值進(jìn)行異或操作才得到第n信息碼的校驗(yàn)基準(zhǔn)值;
根據(jù)所有校驗(yàn)基準(zhǔn)值配置生成校驗(yàn)基準(zhǔn)矩陣。
3.根據(jù)權(quán)利要求2所述的一種CRC碼并行計(jì)算方法,其特征在于,所述根據(jù)CRC生成多項(xiàng)式配置產(chǎn)生一組信息碼具體包括:
根據(jù)CRC生成多項(xiàng)式階k,配置生成一個(gè)最低位為1、高位均為0的k比特?cái)?shù)據(jù)作為第一信息碼;
對(duì)第一信息碼依次執(zhí)行左移位操作,順序得到k-1個(gè)k比特信息碼。
4.根據(jù)權(quán)利要求3所述的一種CRC碼并行計(jì)算方法,其特征在于,所述匹配生成第一信息碼的校驗(yàn)基準(zhǔn)值具體包括:
將CRC生成多項(xiàng)式轉(zhuǎn)換為二進(jìn)制數(shù)據(jù),定位去除最高位后二進(jìn)制數(shù)據(jù)中為1的所有位序;
依次輸出與位序匹配映射的信息碼;
將輸出的信息碼進(jìn)行異或操作后的結(jié)果作為第一信息碼的校驗(yàn)基準(zhǔn)值輸出。
5.根據(jù)權(quán)利要求4所述的一種CRC碼并行計(jì)算方法,其特征在于,所述基于校驗(yàn)基準(zhǔn)矩陣對(duì)第一組數(shù)據(jù)進(jìn)行計(jì)算處理生成第一CRC校驗(yàn)碼具體包括:
定位第一組數(shù)據(jù)中所有有效位的位序;
依次輸出校驗(yàn)基準(zhǔn)矩陣中與位序匹配映射的校驗(yàn)基準(zhǔn)值;
將輸出的校驗(yàn)基準(zhǔn)值進(jìn)行異或操作后的結(jié)果作為第一CRC校驗(yàn)碼輸出。
6.根據(jù)權(quán)利要求5所述的一種CRC碼并行計(jì)算方法,其特征在于,所述基于校驗(yàn)基準(zhǔn)矩陣對(duì)異或結(jié)果計(jì)算處理生成第二CRC校驗(yàn)碼具體包括:
定位異或結(jié)果中所有有效位的位序;
依次輸出校驗(yàn)基準(zhǔn)矩陣中與位序匹配映射的校驗(yàn)基準(zhǔn)值;
將輸出的校驗(yàn)基準(zhǔn)值進(jìn)行異或操作后的結(jié)果作為第二CRC校驗(yàn)碼輸出。
7.一種CRC碼并行計(jì)算裝置,其特征在于,包括:
獲取模塊,配置成用于獲取CRC生成多項(xiàng)式;
校驗(yàn)基準(zhǔn)矩陣產(chǎn)生模塊,配置成根據(jù)CRC多項(xiàng)式產(chǎn)生一組信息碼,并依此生成校驗(yàn)基準(zhǔn)矩陣;
讀取模塊,配置成依次讀取待編碼...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:呂向東,魏斌,任軍,盛榮華,唐偉童,陳真,李政達(dá),
申請(qǐng)(專利權(quán))人:合肥恒爍半導(dǎo)體有限公司,
類型:發(fā)明
國別省市:安徽;34
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。