高效以太網數據幀包fifo實現方法
【技術領域】
[0001]本發(fā)明涉及一種數據的處理方法,特別是一種數據幀的FIFO處理方法。
【背景技術】
[0002]現有以太網介質訪問控制層(MAC)對以太網PHY的數據存儲時通常使用包先入先出緩存(FIFO),為了提高數據處理速度,通常使用乒乓緩存(PING-PONG FIFO),每個FIFO的深度至少是一個最長以太網數據幀長。而在實際數據傳輸過程中,數據并非在任何情況下都以最大幀長進行傳輸,在短幀傳輸的過程中,會造成較大的資源浪費,同時PING-PONGFIFO的控制部分也比較復雜。
[0003]以太網幀數據由10比特數據組成,最高比特位為I表示幀結束,次高比特位為I表示幀開始,低8位比特位表示傳輸的數據。在寫使能有效的情況下,每個時鐘的上升沿將數據存儲到FIFO中。
[0004]傳統(tǒng)FIFO的工作特性是,無論幀長占用FIFO空間的多少,一個幀結束后就不能再寫入數據,直到FIFO中的數據被處理完成,這樣會浪費存儲空間。
[0005]為了加快數據處理速率,通常會使用兩塊FIF0,如附圖1所示,當其中一個FIFO寫入數據完成之后,由控制單元將寫數據的控制權交給另一個FIFO。同時后級處理單元可以從前一個FIFO中讀出數據,這樣依次交替循環(huán)進行讀寫操作。
【發(fā)明內容】
[0006]發(fā)明目的:為了克服現有技術中存在的不足,本發(fā)明提供了一種僅使用一個FIFO和一個幀計數器的方案實現與乒乓緩存同等功能的方法。
[0007]技術方案:為實現上述目的,本發(fā)明的高效以太網數據幀包FIFO實現方法僅使用一個FIFO和一個幀計數器,所述FIFO用于緩存以太網數據幀,所述以太網數據幀每個數據單元包含十個數據位,其中高二位為幀狀態(tài)標志位,低八位為以太網數據幀的一個字節(jié),所述幀狀態(tài)標志位的00、01、10、11四種標識狀態(tài)分別對應以太網數據幀的第二至倒數第三個字節(jié)、數據幀起始字節(jié)、數據幀的倒數第二個字節(jié)以及數據幀的結束字節(jié)四種數據中的一種。
[0008]進一步地,所述FIFO的深度滿足MAC處理數據的需求。
[0009]進一步地,使用同步SRAM做為FIFO的存儲單元。
[0010]有益效果:本發(fā)明的高效以太網數據幀包FIFO實現方法僅使用一個FIFO即實現了數據幀的高效存儲與處理,通過對以太網數據幀的倒數第二字節(jié)進行特殊標記,在不需要解析以太網數據幀內容的情況下,快速從FIFO中截取完整的以太網數據幀,節(jié)約電路資源,提高數據處理速度,適用于更多的應用場合。
【附圖說明】
[0011]附圖1為兩塊FIFO循環(huán)讀取數據幀的原理圖;
[0012]附圖2為使用傳統(tǒng)方法時FIFO中數據幀的讀取原理圖以及各數據部分的數據狀態(tài)標志;
[0013]附圖3為使用本發(fā)明方法時FIFO中數據幀的讀取原理圖以及各數據部分的數據狀態(tài)標志;
[0014]附圖4為FIFO的數據組織結構。
【具體實施方式】
[0015]下面結合附圖對本發(fā)明作更進一步的說明。
[0016]本發(fā)明提出通過對以太網數據幀倒數第二字節(jié)進行特殊標記的方式,僅使用一個FIFO和一個幀計數器的方案實現與PING-PONG FIFO同等功能的方法。FIFO的深度滿足MAC處理數據的需求即可。
[0017]在大多數的應用場景下,使用同步SRAM做為FIFO的存儲單元,其特性是在時鐘的上升沿給出讀有效信號,在下一個時鐘的上升沿可以從SRAM的輸出端口采樣到穩(wěn)定的數據。
[0018]以太網數據以字節(jié)為單位,即8位數據位,而通常在存儲數據的時候使用10位數據位,多出的2位分別用于標志幀開始和幀結束。這樣數據分成3種類型,幀開始(次高比特位),幀結束(最高比特位),中間數據。
[0019]在使用一個FIFO時,FIFO中可能會有多個以太網數據幀,只有當幀的最后一個數據被讀出來以后才能知道是不是幀的結束,但對于判斷是否還需要立即讀下一個數據來說,這實際上已經晚了。如圖2所示,在讀出幀結束數據的時刻(rdata的高2位是10),來不及判定是不是需要繼續(xù)讀數據,除非此時這個FIFO已經空了。
[0020]前面指出,有2位用于標志幀狀態(tài)的標志位實際上只使用了 3種狀態(tài),我們可以使用第4種狀態(tài)11標記倒數第二字節(jié)。如圖3所示,這樣就比較容易判定下一時刻是否還需要繼續(xù)讀數據了。
[0021]使用上述方法,用一個FIFO即可實現現有方案的功能和效率,節(jié)約了一半的資源。
[0022]附圖4所示為FIFO的數據組織結構,bit[9:8]是表示數據幀的高二位,作為數據狀態(tài)標志來表示數據在一幀中的位置,bit[7:0]表示數據幀的低八位。如圖4所示,bit [9:8]為01的時候,bit [7:0]表示一幀數組的開始,而bit [9:8]為10的時候,bit [7:0]表示一幀數組的結束,這里使用bit[9:8]為11的時候表示一幀數據的倒數第二字節(jié),而bit [9:8]為00的時候表示數據處理一幀的2?n-2字節(jié)(假設一幀數據有η個字節(jié))。
[0023]本發(fā)明的高效以太網數據幀包FIFO實現方法僅使用一個FIFO即實現了數據幀的高效存儲與處理,通過對以太網數據幀的倒數第二字節(jié)進行特殊標記,在不需要解析以太網數據幀內容的情況下,快速從FIFO中截取完整的以太網數據幀,節(jié)約電路資源,提高數據處理速度,適用于更多的應用場合。
[0024]以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出:對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。
【主權項】
1.一種高效以太網數據幀包FIFO實現方法,其特征在于:僅使用一個FIFO和一個幀計數器,所述FIFO用于緩存以太網數據幀,所述以太網數據幀每個數據單元包含十個數據位,其中高二位為幀狀態(tài)標志位,低八位為以太網數據幀的一個字節(jié),所述幀狀態(tài)標志位的00、01、10、11四種標識狀態(tài)分別對應以太網數據幀的第二至倒數第三個字節(jié)、數據幀起始字節(jié)、數據幀的倒數第二個字節(jié)以及數據幀的結束字節(jié)四種數據中的一種。2.根據權利要求1所述的高效以太網數據幀包FIFO實現方法,其特征在于:所述FIFO的深度滿足MAC處理數據的需求。3.根據權利要求1所述的高效以太網數據幀包FIFO實現方法,其特征在于:使用同步SRAM做為FIFO的存儲單元。
【專利摘要】本發(fā)明公開了一種高效以太網數據幀包FIFO實現方法,僅使用一個FIFO和一個幀計數器,所述FIFO用于緩存以太網數據幀,所述以太網數據幀每個數據單元包含十個數據位,其中高二位為幀狀態(tài)標志位,低八位為以太網數據幀的一個字節(jié),所述幀狀態(tài)標志位的00、01、10、11四種標識狀態(tài)分別對應以太網數據幀的第二至倒數第三個字節(jié)、數據幀起始字節(jié)、數據幀的倒數第二個字節(jié)以及數據幀的結束字節(jié)四種數據中的一種。本發(fā)明的高效以太網數據幀包FIFO實現方法僅使用一個FIFO即實現了數據幀的高效存儲與處理,通過對以太網數據幀的倒數第二字節(jié)進行特殊標記,在不需要解析以太網數據幀內容的情況下,快速從FIFO中截取完整的以太網數據幀,節(jié)約電路資源,提高數據處理速度,適用于更多的應用場合。
【IPC分類】H04L12/863, H04L29/08
【公開號】CN105141548
【申請?zhí)枴緾N201510435832
【發(fā)明人】馮廣影, 黃鋒, 李焱
【申請人】江蘇技睿通信科技有限公司
【公開日】2015年12月9日
【申請日】2015年7月22日