《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 100G以太網(wǎng)中高位寬并行CRC的簡化方法
100G以太網(wǎng)中高位寬并行CRC的簡化方法
2016年微型機(jī)與應(yīng)用第07期
李傳輝,劉純武,黃芝平
(國防科學(xué)技術(shù)大學(xué) 機(jī)電工程與自動化學(xué)院,湖南 長沙 410073)
摘要: 在100G以太網(wǎng)媒體接入控制器(Media Access Control,MAC)的設(shè)計中,需要采用高位寬的并行數(shù)據(jù)來降低對時鐘的要求。在使用并行循環(huán)冗余校驗(yàn)(Cyclical Redundancy Check,CRC)時會有一個問題,即需要計算CRC的數(shù)據(jù)域長度不一定是數(shù)據(jù)通道位寬的整數(shù)倍,導(dǎo)致最后一組數(shù)據(jù)無法使用數(shù)據(jù)通道的位寬對其進(jìn)行CRC計算。為了解決這個問題,本文提出了在幀前填充0的處理方法。仿真和測試結(jié)果都驗(yàn)證了該方法的可行性。該處理方法也能應(yīng)用到其他的通信系統(tǒng)中。
Abstract:
Key words :

  李傳輝,劉純武,黃芝平

  (國防科學(xué)技術(shù)大學(xué) 機(jī)電工程與自動化學(xué)院,湖南 長沙 410073)

  摘要:在100G以太網(wǎng)媒體接入控制器(Media Access Control,MAC)的設(shè)計中,需要采用高位寬的并行數(shù)據(jù)來降低對時鐘的要求。在使用并行循環(huán)冗余校驗(yàn)(Cyclical Redundancy Check,CRC)時會有一個問題,即需要計算CRC的數(shù)據(jù)域長度不一定是數(shù)據(jù)通道位寬的整數(shù)倍,導(dǎo)致最后一組數(shù)據(jù)無法使用數(shù)據(jù)通道的位寬對其進(jìn)行CRC計算。為了解決這個問題,本文提出了在幀前填充0的處理方法。仿真和測試結(jié)果都驗(yàn)證了該方法的可行性。該處理方法也能應(yīng)用到其他的通信系統(tǒng)中。

  關(guān)鍵詞:100G以太網(wǎng);并行CRC;高位寬

0引言

  IEEE在2010年發(fā)布了40/100G以太網(wǎng)標(biāo)準(zhǔn)[1],其中MAC層仍然沿用以前的規(guī)定未作大的改變,只是100 Gb/s的高速率使得無法沿用以前的方法完成CRC值的計算,為此,本文提出了一種簡單有效的解決方法。

1循環(huán)冗余校驗(yàn)

  在數(shù)字通信系統(tǒng)中,為了確保接收到的數(shù)據(jù)與發(fā)送端的數(shù)據(jù)一致,需要引入差錯控制機(jī)制。循環(huán)冗余校驗(yàn)碼由于其誤碼監(jiān)測能力強(qiáng),抗干擾能力優(yōu)異,被廣泛應(yīng)用于線路檢錯。循環(huán)冗余檢驗(yàn)是一種系統(tǒng)的縮短循環(huán)碼,它采用多項(xiàng)式編碼方法[2]。設(shè)被檢驗(yàn)的信息碼有n位,信息系列M={mn-1 mn-2…m0},用多項(xiàng)式M(x)可表示為:

  M(x) = mn-1 xn-1 + mn-2 xn-2 + … + m1x1 +m0x0(1)

  發(fā)送方和接收方使用同一個生成多項(xiàng)式G(x),其是一個k階的二進(jìn)制多項(xiàng)式,而且G(x)的首位和最后一位的系數(shù)都必須是1,其通用表達(dá)式為:

  G(x)=xk+gk-1xk-1+gk-2xk-2+…+g1x+1(2)

  CRC的計算規(guī)則為發(fā)送方以xk·M(x)除以生成多項(xiàng)式G(x),將得到的余數(shù)R(x)作為校驗(yàn)值,這里的計算規(guī)則都是使用二進(jìn)制運(yùn)算規(guī)則,R(x)可表示為:

  R(x)=CRC(M(x))= xk·M(x)mod G(x)(3)

  發(fā)送方將CRC值隨數(shù)據(jù)一起發(fā)送給接收方,接收方對接收到的數(shù)據(jù)進(jìn)行CRC值的計算,并將它與發(fā)送方的CRC值進(jìn)行比較。如果數(shù)據(jù)傳輸過程中沒有錯誤,兩者的校驗(yàn)值就會是一致的,相反如果得到的校驗(yàn)值不一致,就可以判斷出數(shù)據(jù)在傳輸過程中發(fā)生了錯誤,這時接收方就可以丟棄當(dāng)前數(shù)據(jù)或要求發(fā)送方重傳數(shù)據(jù)。CRC校驗(yàn)可以百分百地檢測出所有的奇數(shù)個的隨機(jī)錯誤和長度小于等于k的突發(fā)錯誤。

2100G以太網(wǎng)的CRC設(shè)計

001.jpg

  在以太網(wǎng)通信中,CRC校驗(yàn)具有重要作用。依據(jù)IEEE802.3以太網(wǎng)的幀格式(如圖1所示),CRC計算的數(shù)據(jù)區(qū)域包括目的地址、原地址、長度/類型和負(fù)載數(shù)據(jù)圖1以太網(wǎng)幀格式區(qū)域。得到的CRC值作為幀校驗(yàn)序列(Frame Check Sequence,F(xiàn)CS)填充在數(shù)據(jù)幀尾。其中規(guī)定了以太網(wǎng)幀F(xiàn)CS字段的生成算法為CRC32,其生成的多項(xiàng)式表達(dá)式為:

  G(x)=x32+x26+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1(4)

  在吉比特以上速率的通信系統(tǒng)中,傳統(tǒng)的串行CRC校驗(yàn)方法已無法滿足要求,所以現(xiàn)在有很多新型并行CRC計算方法[35]。因此在100G以太網(wǎng)中,其CRC也必須采用并行方法,CRC計算的并行位寬就是數(shù)據(jù)通道的位寬。提高數(shù)據(jù)位寬可以降低系統(tǒng)的時鐘頻率,但另一方面隨著并行數(shù)據(jù)位寬的增加會使得CRC電路的延遲時間增加,影響系統(tǒng)的時序性能。經(jīng)過綜合考慮本文中設(shè)計的數(shù)據(jù)并行位寬為320。

  使用320位的高并行位寬會使得數(shù)據(jù)的處理變得復(fù)雜。比如在MAC層的發(fā)送方,上層客戶每個時鐘就會有一組320位40 B的數(shù)據(jù)送給MAC處理,CRC模塊就會使用320位的并行算法對其計算。當(dāng)前的CRC值只與上一次數(shù)據(jù)得到的CRC值及當(dāng)前的數(shù)據(jù)有關(guān),CRC值初始化為全0,如圖2所示。

002.jpg

  問題是數(shù)據(jù)并不一定是40 B的整數(shù)倍關(guān)系,最后一組數(shù)據(jù)可能結(jié)束于任意位置,如圖3所示。

  在10G以太網(wǎng)中,數(shù)據(jù)位寬為64 bit,在參考文獻(xiàn)[6]中對這種情況的處理方法為同時設(shè)計從8 bit到64 bit的CRC生成模塊,根據(jù)有效字節(jié)數(shù)選擇使用其中一個。這一方法無疑會占用大量資源,而且利用率低。在100G以太網(wǎng)中數(shù)據(jù)位寬如果按320設(shè)計,需要多達(dá)40個不同的CRC模塊,加上一個40路的多選一電路,這樣的電路在資源使用和時序性能方面都是很糟糕的。所以這一方法無法用于100G以太網(wǎng)中。文獻(xiàn)[7]中提到了一種級聯(lián)結(jié)構(gòu)可以計算任意字節(jié)的CRC,但此結(jié)構(gòu)有個很明顯的缺點(diǎn),即級聯(lián)越大,電路延遲線性增加,320位就需要級聯(lián)40次,這樣的電路無法滿足時序要求。文獻(xiàn)[2]中利用了CRC校驗(yàn)具有的Magic Number特性,在數(shù)據(jù)幀后面添加0,使得可以只用一個64 bit的CRC模塊完成接收方的CRC校驗(yàn),但無法在數(shù)據(jù)發(fā)送方完成CRC值的計算。

3幀前補(bǔ)0的并行CRC

  上節(jié)提到的10G以太網(wǎng)CRC的處理方法都無法直接應(yīng)用于100G以太網(wǎng)中。下面說明本文提出的方法:幀前補(bǔ)0后再進(jìn)行CRC計算。

  假設(shè)原始序列M有n位數(shù)據(jù),n不是320位的整數(shù)倍。i是一個小于320的整數(shù),且i+n為320的整數(shù)倍,在M前增加i個0構(gòu)造為新序列M′:

  M′(x)=0·xi+n-1+…+0·xn+M(x)=0+M(x)=M(x)(5)

  可以看出新序列在數(shù)值上與原來的序列值是一樣的。這個很好理解,就像在十進(jìn)制中在最前面添加任意位數(shù)的0并不會改變這個數(shù)的數(shù)值一樣,當(dāng)然這在二進(jìn)制數(shù)當(dāng)中同樣適用。新序列的數(shù)據(jù)長度成為了320的整數(shù)倍。

  由CRC的計算公式(3)來看,CRC的結(jié)果只與序列的數(shù)值有關(guān),所以用新序列計算CRC會得到與用原始數(shù)列同樣的結(jié)果。所以依據(jù)此原理,只需要設(shè)計一個320位的并行CRC模塊,計算時使用新的序列送給CRC模塊,這個方法可以計算任意字節(jié)數(shù)據(jù)幀的CRC值。

  假設(shè)有一幀數(shù)據(jù)負(fù)載字節(jié)長度為len,加上目的地址、源地址和數(shù)據(jù)/類型字段的長度14 B,則該幀需要參與CRC計算的數(shù)據(jù)總長為L=len+14。令n=ceil(L/40),ceil函數(shù)得到的是大于等于L/40的最小整數(shù)。令rem=mod(L,40)為L/40的余數(shù),表示最后一組數(shù)據(jù)中有效數(shù)據(jù)的字節(jié)數(shù),對應(yīng)的com=40-rem表示無效的字節(jié)數(shù),V=8*com則表示無效的比特數(shù),也就是需要在幀前添加的0的比特個數(shù)。

  在客戶端向MAC發(fā)送數(shù)據(jù)時,每個時鐘MAC層會收到一組數(shù)據(jù)Cur_data_in[319:0],設(shè)計一組初始化為全0的寄存器Last_data_in[319:0]用來保存上一時鐘的數(shù)據(jù)。根據(jù)V值的大小將Cur_data_in和Last_data_in組合成一組新的數(shù)據(jù)Data_to_crc[319:0],其組合關(guān)系為:

  Data_to_crc[319:0]=Last_data_in[V-1:0]&Cur_data_in[319:V](6)

  “&”表示并置連接,處理過程如圖4所示。新的序列就是送給CRC模塊的數(shù)據(jù),從圖中可以看到在原始數(shù)據(jù)的前面添加了V個比特0。每組數(shù)據(jù)都可以使用320位的并行CRC進(jìn)行處理,而且最后得到的結(jié)果與使用原始數(shù)據(jù)一樣。

  

003.jpg

  4測試及分析

  使用硬件描述語言VHDL實(shí)現(xiàn)上述的處理過程,并將程序下載到FPGA中進(jìn)行測試,綜合出來的結(jié)果表明該方法在面積使用和運(yùn)行速度方面的效果都很好。測試時客戶端給出了一些不同長度的以太網(wǎng)幀,使用Quartus II中的SignalTap工具對數(shù)據(jù)流進(jìn)行采樣。圖5是rem值為18的一幀數(shù)據(jù)的第一組數(shù)據(jù),可以看到data_to_crc在cur_data_in前面添加了22個比特0,這是符合設(shè)計預(yù)期結(jié)果的。圖6所示是該幀數(shù)據(jù)的最后一組數(shù)據(jù),根據(jù)rem值,cur_data_in只有18 B的有效數(shù)據(jù),所以data_to_crc也只取了其中的18 B有效數(shù)據(jù),在CC處結(jié)束,此時的CRC值就是最終的FCS值為83ACF5C1。

  為了驗(yàn)證該值的正確性,使用8位并行CRC算法計算該幀的CRC值,在ModelSim平臺下進(jìn)行了仿真。結(jié)果如圖7所示,可以看到計算完CC后CRC值為83ACF5C1,與前面的結(jié)果一致,說明了該方法得到的結(jié)果是正確的。

004.jpg

5結(jié)束語

  由于100G以太網(wǎng)中會使用很高的并行數(shù)據(jù)位寬,但是數(shù)據(jù)幀中需要進(jìn)行CRC計算的數(shù)據(jù)長度不一定是位寬的整數(shù)倍,本文針對這個問題提出了一種新的處理方法,并且通過了測試。該方法簡單有效,能夠克服傳統(tǒng)方法的缺陷,在性能上有很大的提升。雖然本文是以100G以太網(wǎng)的CRC32作說明,該方法也能很容易地應(yīng)用于其他的高速通信系統(tǒng)。

參考文獻(xiàn)

  [1] IEEE. IEEE Std. 802.3ba[S]. 2010.

  [2] 彭建輝. 10G以太網(wǎng)接口并行CRC校驗(yàn)的一種簡化算法[J].微計算機(jī)信息,2006,22(20):213215.

  [3] STAVINOV E.A practical parallel CRC generation method [J]. Circuit Cellar, 2010(234):3845.

  [4] 畢占坤,張羿猛,黃芝平,等.基于邏輯設(shè)計的高速CRC并行算法研究及其FPGA實(shí)現(xiàn)[J]. 儀器儀表學(xué)報, 2007,28(12):22442249.

  [5] KENNEDY C E, MOZAFFARIKERMANI M.Generalized parallel CRC computation on FPGA[C]. Canadian Conference on Electrical and Computer Engineering (CCECE), 2015:107113.

  [6] 張友亮,劉志軍,馬成海,等. 萬兆以太網(wǎng)MAC層控制器的FPGA設(shè)計與實(shí)現(xiàn)[J].  計算機(jī)工程與應(yīng)用, 2012,48(6):7779.

  [7] 劉昭,蘇厲,金德鵬,等.10G以太網(wǎng)系統(tǒng)中的并行CRC編解碼器的設(shè)計[J]. 電子技術(shù)應(yīng)用, 2004,30(4):4750.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲黄色影院| 亚洲精品四区| 亚洲精品视频中文字幕| 在线激情影院一区| 激情久久综合| 狠狠色丁香婷婷综合影院| 国产日韩一区在线| 国产精品网站在线| 国产精品天天摸av网| 欧美午夜性色大片在线观看| 欧美日韩成人综合| 欧美日韩国产123区| 欧美日韩视频在线观看一区二区三区 | 欧美激情视频一区二区三区免费| 女人色偷偷aa久久天堂| 免费日韩精品中文字幕视频在线| 美女国产一区| 欧美国产综合一区二区| 欧美精品午夜| 欧美日韩一区二区在线观看| 国产精品国产三级国产专区53| 国产精品五月天| 国产香蕉久久精品综合网| 国模私拍视频一区| 在线看片成人| 日韩一级精品视频在线观看| 亚洲午夜激情免费视频| 午夜电影亚洲| 亚洲激情亚洲| 夜夜嗨av一区二区三区中文字幕| 中日韩午夜理伦电影免费| 亚洲综合大片69999| 久久国产福利| 免费亚洲婷婷| 欧美三日本三级少妇三99| 国产精品日韩在线| 影音先锋欧美精品| 亚洲理论在线| 亚洲欧美精品一区| 亚洲国产你懂的| 一本久久综合亚洲鲁鲁五月天| 亚洲伊人观看| 久久久国际精品| 欧美精品乱码久久久久久按摩| 国产精品播放| 狠狠综合久久| 日韩视频在线免费| 香蕉乱码成人久久天堂爱免费| 亚洲精品免费看| 香港成人在线视频| 麻豆精品在线观看| 国产精品久久99| 黄色国产精品| 一区二区免费在线视频| 欧美资源在线观看| 亚洲天堂成人在线观看| 久久久久久伊人| 欧美视频在线看| 伊人精品久久久久7777| 一区二区三区国产| 亚洲国产日韩美| 午夜精品福利一区二区三区av| 免费视频一区| 国产欧美日韩精品专区| 亚洲精品久久7777| 欧美制服第一页| 亚洲自拍另类| 欧美成人视屏| 国产午夜亚洲精品不卡| 一本色道久久综合亚洲精品婷婷| 亚洲二区在线| 性欧美xxxx大乳国产app| 欧美福利专区| 国产亚洲精品v| 妖精成人www高清在线观看| 久久精品国产亚洲aⅴ| 亚洲欧美日本日韩| 欧美日韩国产精品成人| 亚洲福利国产| 欧美一级在线视频| 亚洲欧美久久| 欧美日韩综合在线免费观看| 影音先锋久久资源网| 欧美一区二区三区日韩| 亚洲免费在线播放| 欧美全黄视频| 亚洲福利视频免费观看| 久久av资源网站| 欧美怡红院视频一区二区三区| 欧美日韩调教| 亚洲人成艺术| 最新国产成人在线观看| 久久免费视频观看| 国产欧美一区二区三区久久 | 在线一区亚洲| 欧美激情1区2区| 激情欧美日韩| 性色av一区二区三区红粉影视| 亚洲影音先锋| 欧美日韩国产欧| 亚洲老板91色精品久久| 亚洲国产老妈| 久久综合狠狠综合久久激情| 国产日产欧美a一级在线| 一区二区三区日韩精品| 一区二区三区福利| 欧美精品尤物在线| 最新成人av网站| 99精品欧美一区二区三区| 欧美精品啪啪| 亚洲精选在线| 亚洲作爱视频| 欧美日韩精品一区二区在线播放 | 欧美三级电影精品| 99riav国产精品| 亚洲视屏在线播放| 欧美日韩在线不卡一区| 一本大道av伊人久久综合| 亚洲天堂久久| 欧美三级小说| 亚洲一线二线三线久久久| 午夜久久久久| 国产欧美一区二区视频| 午夜在线播放视频欧美| 久久久久九九视频| 国产在线播精品第三| 亚洲第一精品夜夜躁人人躁 | 亚洲国产清纯| 99国产精品久久久久久久| 欧美日韩午夜精品| 亚洲小说欧美另类社区| 欧美一二三区在线观看| 国产日韩欧美亚洲| 亚洲国产成人久久| 欧美激情区在线播放| 99国产精品久久久久久久成人热| 亚洲午夜视频在线观看| 国产精品一区二区久久精品| 性欧美大战久久久久久久久| 久久综合五月天婷婷伊人| 亚洲电影免费| 亚洲在线第一页| 国产婷婷97碰碰久久人人蜜臀| 亚洲第一精品久久忘忧草社区| 男同欧美伦乱| av成人手机在线| 欧美在线综合| 亚洲承认在线| 亚洲网站在线看| 国产三级欧美三级日产三级99| 亚洲国产婷婷香蕉久久久久久99| 欧美精品在线观看| 亚洲综合大片69999| 久久亚洲精品一区二区| 亚洲精品视频在线播放| 午夜日韩在线| 亚洲承认在线| 亚洲免费在线播放| 激情av一区| 亚洲视频在线观看网站| 国产亚洲人成网站在线观看| 亚洲日本va午夜在线电影| 欧美三级在线视频| 久久国产精品一区二区三区| 欧美日韩国产成人在线免费| 亚洲欧美日韩精品久久| 欧美高清在线视频| 亚洲欧美三级伦理| 欧美激情性爽国产精品17p| 亚洲欧美国产精品专区久久| 欧美h视频在线| 亚洲欧美在线磁力| 欧美韩日一区| 欧美一区二区三区喷汁尤物| 欧美日韩爆操| 欧美一级成年大片在线观看| 欧美精品日日鲁夜夜添| 性欧美暴力猛交另类hd| 欧美日韩一区精品| 久久精品一区二区三区不卡| 欧美无乱码久久久免费午夜一区| 久久精品国产久精国产爱| 国产精品高精视频免费| 亚洲人成欧美中文字幕| 国产欧美一区二区三区沐欲| 在线亚洲免费| 亚洲国产精品久久91精品| 欧美中文在线观看| 99精品视频一区二区三区| 老色鬼久久亚洲一区二区| 亚洲一区二区三区色| 欧美精品成人| 亚洲国产高清自拍| 国产欧美日本| 亚洲男女自偷自拍| 亚洲美女色禁图| 欧美成人免费全部观看天天性色| 欧美一区二区三区四区视频 | 国产毛片精品视频| 亚洲图片欧美一区|