幀邊界檢測方法和設備及解碼方法和系統的製作方法
2023-06-19 00:19:16 1
專利名稱:幀邊界檢測方法和設備及解碼方法和系統的製作方法
技術領域:
本發明的各實施方式涉及數據通信領域,並且更具體地涉及用於乙太網前向糾錯 (Forward Error Correction,簡稱FEC)層接收的數據流的幀邊界檢測方法和設備以及用於乙太網前向糾錯層接收的數據流的解碼方法和系統。
背景技術:
IEEE 802. 3-2008 第 74 章以及 IEEEP 802.3 Dl. 2 定義了應用於 IOG 乙太網的 BASE-R物理層的FEC子層。該FEC子層標準將系統的誤碼率(BER)從10_7減少到10-12。 而且此標準也適用於40G/100G乙太網的應用。為了兼容不同的乙太網應用層,協議規定FEC層壓縮原始幀頭以留出空間加載 FEC校驗位,從而保證該層與其他應用層保持一致的幀長度(IEEE 802.3ap-2007第74章定義的幀長度為2112比特位)。但是這樣的處理方法導致接收端很難識別各幀之間的幀邊界,需要耗費大量時間和發送端幀同步,才能找出正確的幀邊界位置。因此,對於乙太網前向糾錯層接收的數據流而言,需要一種能夠快速檢測幀邊界的方法以及快速進行FEC解碼的方法。
發明內容
針對以上問題,本說明書中提供了一種用於乙太網前向糾錯層接收的數據流的幀邊界檢測方法和設備以及一種用於乙太網前向糾錯層接收的數據流的解碼方法和系統。在本發明的一個實施方式中,提供了一種用於乙太網前向糾錯層接收的數據流的幀邊界檢測方法。該幀邊界檢測方法可以包括基於第一數據項、第二數據項以及前一校正子的中間計算結果,計算當前校正子,其中第一數據項是當前待測幀的最後一比特數據,第二數據項是該當前待測幀的前一比特數據;以及使用當前校正子檢測該當前待測幀的前一比特數據是否是一個乙太網前向糾錯層幀邊界。在本發明的另一個實施方式中,提供了一種用於乙太網前向糾錯層接收的數據流的幀邊界檢測設備。該幀邊界檢測設備可以包括緩存器,用於對數據流中的數據進行緩存,該緩存器的數據長度大於1幀;校正子生成器,用於基於第一數據項、第二數據項以及前一校正子的中間計算結果計算當前校正子,其中第一數據項是當前待測幀的最後一比特數據,第二數據項是該當前待測幀的前一比特數據;以及比較器,用於使用當前校正子檢測該當前待測幀的前一比特數據是否是一個乙太網前向糾錯層幀邊界。在本發明的又一個實施方式中,提供了一種用於乙太網前向糾錯層接收的數據流的解碼方法。該解碼方法可以包括利用根據本發明的前述實施方式中的幀邊界檢測方法檢測該數據流的幀邊界,並輸出當前校正子;根據當前校正子和當前待測幀的校驗碼確定當前幀中的錯誤;對當前待測幀進行解擾;以及基於所確定的錯誤對解擾的幀進行前向糾
T曰O在本發明的另外一個實施方式中,提供了一種用於乙太網前向糾錯層接收的數據流的解碼系統。該解碼系統可以包括根據本發明的前述實施方式的幀邊界檢測設備,用於檢測該數據流的幀邊界,並輸出當前校正子;錯誤診斷器,用於根據當前校正子和當前幀的校驗碼確定當前幀中的錯誤;解擾器,用於對當前幀進行解擾;以及錯誤糾正器,用於基於錯誤診斷器確定的錯誤對解擾器所解擾的幀進行前向糾錯。根據本發明的各實施方式中的方法、設備和系統,可以快速確定幀邊界位置,從而減少幀邊界檢測所需要的時間,提高幀同步速度。通過以下對說明本發明原理的優選實施方式的描述,並結合附圖,本發明的其他特徵以及優點將會更加明顯。
通過以下結合附圖的說明,並且隨著對本發明的更全面了解,本發明的其他目的和效果將變得更加清楚和易於理解,其中圖1是根據一種技術方案的用於乙太網前向糾錯層接收的數據流的解碼系統的框圖;圖2示出了根據圖1所示的解碼系統進行幀同步的示意圖;圖3是根據本發明一種實施方式的用於乙太網前向糾錯層接收的數據流的解碼系統的示意框圖;圖4是根據本發明的一個實施方式的用於乙太網前向糾錯層接收的數據流的幀邊界檢測設備的示意框圖;圖5是根據本發明的一個實施方式的用於乙太網前向糾錯層接收的數據流的幀邊界檢測方法的示意流程圖;圖6是根據本發明的另一個實施例的用於乙太網前向糾錯層接收的數據流的幀邊界檢測方法的示意流程圖;以及圖7示出了根據本發明的一個實施例的幀邊界檢測設備如何進行幀同步的示意圖。在所有的上述附圖中,相同的標號表示具有相同、相似或相應的特徵或功能。
具體實施例方式以下結合附圖,對本發明的各實施方式進行更詳細的解釋和說明。應當理解,本說明書包括的附圖及實施方式僅用於示例性作用,並非用於限制本發明的保護範圍。在本發明的一個實施方式中,基於第一數據項、第二數據項以及前一校正子的中間計算結果,計算當前校正子。這裡,第一數據項是當前待測幀的最後一比特數據,第二數據項是該當前待測幀的前一比特數據。然後,使用當前校正子檢測該當前待測幀的前一比特數據是否是一個乙太網前向糾錯層幀邊界。本發明的以下實施方式中,1幀數據包括2112比特,其中2080比特是有效載荷,32 比特是校驗碼。應該理解的是,本發明各實施方式中的方法、設備和系統並不限於這些具體數字,而是可以應用於任何長度的幀。圖1根據一種技術方案的用於乙太網前向糾錯層接收的數據流的解碼系統的框圖。具體而言,圖1示出了根據IEEE 802. 3-2008第74章定義的FEC解碼系統的結構圖,該FEC解碼系統接收來自PMA(Physical Medium Attachment物理介質接入子層)層的輸入, 並且將處理結果輸出到PCS Physical Coding Sublayer物理編碼子層)層。FEC解碼系統包括五個模塊移位器對從PMA層接收的數據進行移位;PN-2112發生器用於產生PN2112 序列,該序列將會用於與移位器移位後的數據進行異或,實現對接收數據的解擾操作;移位器移位後的數據與PN-2112發生器產生的數據進行異或操作後輸入到FEC解碼器;FEC解碼器將輸入的數據進行前向糾錯,並將糾錯後的數據輸出。輸出後的數據經過重建64/66 數據塊,該模塊能夠對經FEC解碼後的數據進行幀頭恢復,將每個FEC幀數據中2080比特的有效載荷恢復成32幀66比特長度的PCS幀,然後該模塊的輸出進入PCS層。FEC解碼器還將產生的校正子輸出給同步控制器,用於FEC幀同步的控制,同步控制器的輸出給移位器,可以控制移位器的移位。FEC解碼器本身又包含校正子產生器、錯誤診斷器和錯誤糾正器。其本身是用於前向糾錯的,但是由於本發明相關協議的特殊性,其也被用於與發送端的幀同步。圖1的電路結構使用的同步過程包括以下步驟a)測試一個假設的幀邊界位置;al)通過移位器假設一個幀邊界位置,以該假設的幀邊界位置為起始,用PN-2112 發生器對接收數據進行解擾碼運算;a2)校驗子產生器對以假設幀邊界為起始位置的一幀數據進行FEC校驗;如果校驗不匹配(接收到的校驗碼和運算得到的校驗碼不相等),則同步控制器會控制移位器將假設的幀邊界位置跳過一比特位置,然後重試步驟a);b)對於一個假設幀邊界,同步控制器會根據校驗子產生器的輸出結果確認η個連續幀的FEC校驗都正確;bl)如果η個連續幀中任何一個幀的FEC校驗出錯,則同步控制器會控制移位器將假設的幀邊界位置跳過一比特位置,重新開始整個幀同步過程;b2)如果同步控制器檢測到接收到的η個連續幀的FEC校驗都正確,進入步驟c);c)幀同步建立;d)如果同步控制器檢測到連續m個接收到的數據幀的FEC校驗都錯誤,則認為幀同步失步,重新開始整個幀同步過程。對於2112比特位的幀長度,上述步驟最多重複2111次來遍歷所有可能的2112個位置以找到正確的幀邊界位置。在以上描述中,典型數據取m = 8,η = 4。圖2示出了根據圖1所示的解碼系統進行幀同步的示意圖。根據圖2,開始時, 幀同步邏輯不知道正確的起始位置,它需要在幀裡面假設一個幀起始位置來檢驗此幀。但當第一幀的最後一位數據進入幀同步邏輯的時候,幀同步邏輯不能馬上產生此幀的校驗結果。這是因為硬體實現上會有基於流水線結構設計所造成的延遲,此延遲是因為一些功能邏輯,比如解擾碼等邏輯,所引起的,而且是不可避免的。這段流水線延遲過後,如果幀同步邏輯檢測到第一幀邊界的位置是錯誤的,幀同步邏輯需要在後續假設的幀邊界位置跳過一比特作為下一個假設的幀邊界。此時,由於如圖2所示的流水線延遲,從第二幀的幀邊界的起始位置跳過一比特,並開始檢測第二幀數據已經來不及了。所以幀同步邏輯不得不丟棄整個第二幀數據直到第三幀數據來了,幀同步邏輯才會基於第三幀的幀邊界跳過一比特位,然後對第三幀重複第一幀中的校驗操作。
這樣在最壞情況下,幀同步邏輯需要檢測2112幀,丟棄2111幀並且進行2111次跳過一比特位的操作。這需要用時(2112+2111)^2112+2111 = 8,921,087BT(比特時間) 才能得到正確幀邊界(即幀的正確起始位)。這樣的幀同步時間和其他相近速率的高速接口相比(SATA2. 0 大概 600, 000ΒΤ, PCIE2. 0 大約 500,000ΒΤ)要長很多。在圖1和圖2的方案中,由於硬體中流水線結構的存在,當檢測一次幀邊界時,採用每次跳過一比特位置的方法需要丟棄接近一半的幀,造成幀邊界檢測時間延長,幀同步速度慢。本發明的實施方式改進了檢測幀邊界的方法,針對當前待測幀的校正子(當前校驗子)不直接通過輸入數據產生,而是通過產生針對前一待測幀的校驗子(前一校驗子) 的中間計算結果而獲得,從而加速了幀同步過程。以下為方便描述,假設每個時鐘周期只有1比特數據串行輸入。在實際電路的實施中,通過對電路結構的展開,可以支持任意比特數據的並行輸入和處理。圖3是根據本發明一個實施方式的用於乙太網前向糾錯層接收的數據流的解碼系統300的示意框圖。FEC解碼系統300包括幀邊界檢測設備310、錯誤診斷器320、解擾器330、和錯誤糾正器340。FEC解碼系統300還可以包括控制器350和重構器360。幀邊界檢測設備310檢測該數據流的幀邊界,並輸出當前校正子。錯誤診斷器320 根據當前校正子和當前幀的校驗碼確定當前幀中的錯誤。解擾器330對當前幀進行解擾。 錯誤糾正器340基於錯誤診斷器確定的錯誤對解擾器所解擾的幀進行前向糾錯。控制器 350根據來自該幀邊界檢測設備的幀邊界檢測結果確定是進行幀邊界檢測還是進行前向糾錯。重構器360用於將完成前向糾錯的數據重構成適用於物理編碼子層的格式。在根據本發明一實施方式的FEC解碼系統300中,幀邊界檢測設備310可以包括 緩存器311,用於對數據流中的數據進行緩存,該緩存器的數據長度大於1幀;校正子生成器312,用於基於第一數據項、第二數據項以及前一校正子的中間計算結果計算當前校正子,其中第一數據項是當前待測幀的最後一比特數據,第二數據項是該當前待測幀的前一比特數據;以及比較器313,用於使用當前校正子檢測該當前待測幀的前一比特數據是否是一個乙太網前向糾錯層幀邊界。在一個實施方式中,FEC解碼系統300的解碼過程如下首先,幀邊界檢測設備310利用前述幀邊界檢測方法檢測出所接收的自PMA層輸入的數據流的幀邊界,並輸出與當前幀相關聯的校正子,稱為當前校正子。當檢測到幀邊界時,控制器350通知錯誤診斷器320對當前幀中的錯誤進行診斷。然後,錯誤診斷器320根據當前校正子和當前幀的校驗碼確定當前幀中的錯誤,其中當前幀的校驗碼可以根據乙太網前向糾錯層幀格式得到。隨後,對當前幀進行解擾,這例如可以利用圖1所示技術方案中採用的解擾方式,利用PN-2112發生器產生的PN2112序列對來自緩存器311的當前幀中的數據進行異或,從而實現對當前幀的解擾操作。然後,錯誤糾正器340基於錯誤診斷器320 所確定的錯誤對解擾的幀進行前向糾錯。糾錯後的數據輸入到重構器360,重構器360將完成前向糾錯的數據重構成適用於PCS層的格式,其中重構器360將當前幀的2112比特中的 2080比特有效載荷恢復成32幀66比特長度的PCS幀,然後該模塊的輸出到PCS層。圖4是根據本發明的一個實施方式的用於乙太網前向糾錯層接收的數據流的幀邊界檢測設備的框圖。圖4的幀邊界檢測設備主要包括三個組件緩存器410、校正子生成器420和比較器 430。總體而言,圖4所示的幀邊界檢測設備可以執行圖5所示的根據本發明的一個實施方式的用於乙太網前向糾錯層接收的數據流的幀邊界檢測方法。在步驟501,校正子生成器420可以基於第一數據項、第二數據項以及前一校正子的中間計算結果,計算當前校正子,其中第一數據項是當前待測幀的最後一比特數據,第二數據項是當前待測幀的前一比特數據,第二數據項可以從緩存器410得到。在步驟502,比較器430可以使用當前校正子檢測該當前待測幀的前一比特數據是否是一個乙太網前向糾錯層幀邊界。具體地,圖4所示的幀邊界檢測設備的結構如下緩存器410用於對數據流中的數據進行緩存。緩存器410可以存儲的數據長度大於1幀,緩存器410例如可以是FIFO存儲器。校正子生成器420包括第一異或器421、邏輯與運算器422、取模器423、移位器 424、寄存器425、第二異或器426。寄存器425可以存儲校正子的中間運算結果。移位器 4M可以對數據項進行移位。取模器423可以對數據項進行取模運算。邏輯與運算器422 可以進行邏輯與運算。第一異或器421可以將三個數據項進行異或運算。第二異或器426 可以將兩個數據項進行異或運算。第一異或器421接收第一數據項,作為用於計算當前校正子的第一輸入;邏輯與運算器422接收該第二數據項並將該第二數據項與第一參數進行邏輯與運算,得到用於計算當前校正子的第二輸入;移位器4M將該寄存器425存儲的用於計算前一校正子的第一輸出進行1比特左移位,取模器423對移位後的數據取模,得到用於計算當前校正子的第三輸入;第一異或器421將用於計算當前校正子的第一輸入、第二輸入和第三輸入進行異或運算,得到用於計算當前校正子的第一輸出並存儲在寄存器425中;以及第二異或器似6將用於計算當前校正子的第一輸出與第二參數進行邏輯異或運算,得到當前校正子。比較器430可以包括獲取器431和判斷器432。獲取器431可以根據乙太網前向糾錯層幀格式,得到當前待測幀中的位於校驗碼位置的數據。判斷器432可以在當前校正子與位於校驗碼位置的數據匹配的情況下,判定當前待測幀的前一比特數據是乙太網前向糾錯層幀邊界。以下通過圖6描述根據圖4的幀邊界檢測設備如何利用根據本發明一實施方式的幀邊界檢測方法進行幀邊界的檢測。圖6是根據本發明的另一個實施方式的用於乙太網前向糾錯層接收的數據流的幀邊界檢測方法的流程圖。在一個實施方式中,校正子是通過實現式(1)來得到的Syndrome(n+1):(n+FL) = r (χ) (n+FL) [r(x)n&M0D2] [ (MODRnilin^1) 『 χ) modg (χ) ] MODPN(I)其中FL是1幀長度,由於在本實施例中假設採用IEEE 802. 3標準下的幀,所以1幀的長度是2112比特,即FL = 2112。Syndrome(n+1):(n+FL)是針對當前待測幀計算出的校正子,也即當前校正子,其長度等於幀的校驗位長度。由於在本實施例中假設採用IEEE802. 3標準下的幀,所以1幀的校驗位長度是32比特,即校正子的長度為32比特。本領域技術人員可以理解的是,在採用幀長度不等於2112比特或校驗碼長度不等於32比特的其他標準的情況下,本發明的方法和系統也是可以應用的。r(x) (n+FL)是用於計算當前校正子的第一輸入。r(x)表示從來自PMA層的數據流中接收的數據,假設當前待測幀的前一比特數據序號為n,該當前待測幀的第一比特數據序號為n+1,所以當前待測幀的最後一比特數據的序號為n+FL。因此,r(X)(n+m是來自PMA層的數據流中的當前待測幀的最後一比特數據,在此將其簡稱為第一數據項。r(x)n&M0D2是用於計算當前校正子的第二輸入。如上所述,r(x)表示從來自PMA 層的數據流中接收的數據,假設當前待測幀的第一比特數據序號為Π+1,則!·^、表示當前待測幀的前一比特數據,在此將其簡稱為第二數據項。M0D2是第一參數,長度等於幀的校驗位長度,其是一個預先設定的固定參數並且可以通過M0D2 = (MODI x)modg(x)得到,其中 MODI = x^modgOO並且也是一個固定參數。在本發明的一個實施方式中,M0D2可以以硬連線的方式存儲在電路中。符號&表示邏輯與運算,例如,若r(x)n = 0,則用於計算當前校正子的第二輸入是0;若r (X)n= 1,則用於計算當前校正子的第二輸入是M0D2。(MODRnilin^1) x)modg(x)是用於計算當前校正子的第三輸入,其是將M0DRn: 進行1比特左移位(·χ表示進行1比特左移位)後關於g(x)進行取模。M0DRn:(n+^)是用於計算前一校正子的第一輸出。其中,「計算前一校正子的第一輸出」是前一校正子的中間計算結果,在本實施例中其是通過將用於計算前一校正子的第一輸入、第二輸入和第三輸入進行異或運算得到的,如以下式( 所示MODRn: (η+.」 = [ (MODRfe-D: (n+FL_2) · χ) mod g(x)] [r (x)n_1M0D2] r (χ) (2)取模處理可以使用以下多項式,其是由IEEE 802. 3 74. 7. 4. 4. 1節所確定的g(x) = x32+x23+x21+xn+x2+l0得到以上用於計算當前校正子的第一輸入、用於計算當前校正子的第二輸入和用於計算當前校正子的第三輸入後,將這三者進行異或處理,可以得到用於計算當前校正子的第一輸出。所得到的第一輸出是當前校正子的中間計算結果,可以用於計算下一校正子, 從而每次計算校正子時都可以利用前一校正子的中間計算結果,從而顯著減少了計算量, 大大提高了處理速度。MODPN是第二參數,長度等於幀的校驗位長度,其是一個預先設定的固定參數且 MODPN = PN2112modg(x),其中PN2112是長度為1幀長度的偽噪聲序列,可以利用現有技術中的PN-2112發生器來產生,用於實現對數據的解擾。將第二參數MODPN與用於計算當前校正子的第一輸出r(X)(n+FL) [r(x) &M0D2] [(MODRnH1) · x)modg(x)]進行邏輯異或運算,可以得到當前校正子 Syndrome (n+1):(n+FL)。接著參照圖6。在步驟601,接收當前待測幀的最後一比特數據,即上述第一數據項r (x) (n+FL),作為用於計算當前校正子的第一輸入。在一個實施方式中,如在圖4所示的幀邊界檢測設備中,由第一異或器421來接收當前待測幀的最後一比特數據。然後,在步驟602,接收當前待測幀的前一比特數據,即上述第二數據項r(x)n。
9
接著,在步驟603,將第二數據項r (X)n與第一參數M0D2進行邏輯與運算,得到用於計算當前校正子的第二輸入r(x)n&M0D2。在一個實施方式中,如在圖4所示的幀邊界檢測設備中,由邏輯與運算器422接收當前待測幀的前一比特數據r (X)n以及第一參數M0D2, 並將r (X)n與M0D2進行邏輯與運算,得到用於計算當前校正子的第二輸入,並將其傳輸到第一異或器421。然後,在步驟604,將用於計算前一校正子的第一輸出MODRnJn+^)進行1比特左移位,從而得到M0DRn:(n+^) ·χ。在一個實施方式中,如在圖4所示的幀邊界檢測設備中,用於計算前一校正子的第一輸出M0DRn:(n+^)來自於第一異或器421,由移位器4M對其進行1 比特左移位。然後,在步驟605,對步驟604的得到的結果關於g(x)取模,得到用於計算當前校正子的第三輸入(M0DI n:(n+FH) -^mod g(x)。在一個實施方式中,如在圖4所示的幀邊界檢測設備中,取模器423對經移位器似4移位後的結果進行關於g(x)的取模運算,從而得到用於計算當前校正子的第三輸入,並將其輸入第一異或器421。接著,在步驟606,將用於計算當前校正子的第一輸入r(x) (n+FL)、第二輸入r (χ) &M0D2和第三輸入(M0DI n:(n+FH) .x)modg(x)進行異或運算,得到用於計算當前校正子的第
一輸出r (x) (n+FL) [r(x)n&M0D2] [(MODRniin^1) · χ) mod g(x)]。在一個實施方式中,如在圖4所示的幀邊界檢測設備中,第一異或器421將步驟 601得到的用於計算當前校正子的第一輸入、步驟603得到的來自於邏輯與運算器422的用於計算當前校正子的第二輸入、以及步驟605得到的來自於取模器423的用於計算當前校正子的第三輸入進行異或運算,得到用於計算當前校正子的第一輸出。然後,在步驟607,將用於計算當前校正子的第一輸出與第二參數MODPN進行邏輯異或運算,得到當前校正子Syndr0me(n+1):(n+FL)。在一個實施方式中,如在圖4所示的幀邊界檢測設備中,第二異或器4 接收第二參數,並將其與步驟606得到的用於計算當前校正子的第一輸出進行異或運算,最終得到針對當前待測幀的校正子,即當前校正子。第二異或器 426得到當前校正子後,可以將其提供給比較器430中的判斷器以進行幀邊界的判斷,還可以將其提供給圖2所示的錯誤診斷器320以便診斷當前幀(由於進行錯誤診斷時以確定當前待測幀是一個乙太網前向糾錯層幀,所以此時將當前待測幀稱為當前幀)中的錯誤。接著,在步驟608,根據乙太網前向糾錯層幀格式,得到當前待測幀中的位於校驗碼位置的數據。在一個實施方式中,如在圖4所示的幀邊界檢測設備中,由比較器430中的獲取器431執行步驟608的操作,從當前待測幀中得到與校正子長度相等的當前待測幀中的位於校驗碼位置的數據,並輸入到判斷器432。然後,在步驟609,在當前校正子Syndrome(n+1):(n+FL)與位於校驗碼位置的數據匹配的情況下,判定當前待測幀的前一比特數據是乙太網前向糾錯層幀邊界。在一個實施方式中,如在圖4所示的幀邊界檢測設備中,比較器430中的判斷器432接收得到當前待測幀中的位於校驗碼位置的數據,並接收來自第二異或器426的當前校正子,將二者的每個比特分別進行比較。比較器430可以在二者一致的情況下,認為當前校正子與位於校驗碼位置的數據匹配,從而判定第一異或器421在步驟601所接收的當前待測幀的最後一比特數據 (即第一數據項)是一個乙太網前向糾錯層幀邊界。
在步驟609之後,流程結束。圖7示出了根據本發明的一個實施方式的幀邊界檢測設備如何進行幀同步的示意圖。假設在第一待測幀之前存在一個「假(fake) 」巾貞,該假幀具有2112個為0的比特, 其並不是來自PMA層的數據流中的數據。如圖7所示,在時間-2111處,可以得到幀-2111的校正子,此時M0DR(_2112):H)是 32比特的0值。在時間-2110處,根據本發明的式(1)和式⑵可以得到與幀-2110對應的M0DR(_2111):Q和校正子Syndr0me(_2111):Q,但是該校正子是「假」校正子,因為這種「假」校正子對應的是假設的「假」幀。類似地,在時間1處,可以得到與幀1 (即第一待測幀)對應的M0DR:q:2111和校正子 Syndrome0l21110此時,可以使用該校正子與幀1中的位於校驗碼位置的數據進行比較,從而判定幀1是否是一個乙太網前向糾錯層幀。在時間2處,可以得到與幀2 (即第二待測幀)對應的M0DR:1:2112和校正子 Syndromell21120此時,可以使用該校正子與幀2中的位於校驗碼位置的數據進行比較,從而判定幀2是否是一個乙太網前向糾錯層幀。如此一直進行,當在時間2112處,可以得到與幀2112對應的M0DR:2111:4m和校正子Syndrol^2im4222 t5此時,可以使用該校正子與幀2112中的位於校驗碼位置的數據進行比較,從而判定幀2112是否是一個乙太網前向糾錯層幀。由此,在最差的情況下,通過對以連續的2112比特為起始位置的2112個待測幀進行幀邊界檢測,一定可以檢測到幀邊界。也就是說,利用本發明的方法,檢測到幀邊界所需要的時間最多是42MBT(比特時間)。與現有技術的8,921,087 BT相比,本發明實施方式中的方法將乙太網前向糾錯層接收的數據流的幀邊界檢測速度提高了約2112倍,顯著提高了 FEC解碼系統的處理效率。附圖中的流程圖和框圖示出了根據各種實施方式的系統、 方法和電腦程式產品的可能實現的架構、功能和操作。在這點上,流程圖或框圖中的每個步驟可以代表模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包括一個或多個用於實現指定的邏輯功能的可執行指令。還應當注意,在有些備選實現中,步驟中標註的功能也可以以不同於附圖中所標註的順序發生。例如,連續示出的兩個步驟實際上可以基本並行地執行,或者這些步驟有時也可以按相反的順序執行,這依所涉及的功能而定。本發明可以採取完全硬體實施方式、完全軟體實施方式或既包含硬體組件又包含軟體組件的實施方式的形式。在優選實施方式中,本發明實現為軟體,其包括但不限於固件、駐留軟體、微代碼等。而且,本發明還可以採取可從計算機可用或計算機可讀介質訪問的電腦程式產品的形式,這些介質提供程序代碼以供計算機或任何指令執行系統使用或與其結合使用。 出於描述目的,計算機可用或計算機可讀機制可以是任何有形的裝置,其可以包含、存儲、 通信、傳播或傳輸程序以由指令執行系統、裝置或設備使用或與其結合使用。介質可以是電的、磁的、光的、電磁的、紅外線的、或半導體的系統(或裝置或器件)或傳播介質。計算機可讀介質的例子包括半導體或固態存儲器、磁帶、可移動計算機磁碟、隨機訪問存儲器(RAM)、只讀存儲器(ROM)、硬磁碟和光碟。目前光碟的例子包括緊湊盤-只讀存儲器(CD-ROM)、壓縮盤-讀/寫(CD-R/W)和DVD。
適合與存儲/或執行程序代碼的數據處理系統將包括至少一個處理器,其直接地或通過系統總線間接地耦合到存儲器元件。存儲器元件可以包括在程序代碼的實際執行期間所利用的本地存儲器、大容量存儲器、以及提供至少一部分程序代碼的臨時存儲以便減少執行期間從大容量存儲器必須取回代碼的次數的高速緩衝存儲器。輸入/輸出或I/O設備(包括但不限於鍵盤、顯示器、指點設備等等)可以直接地或通過中間I/O控制器耦合到系統。網絡適配器也可以耦合到系統,以使得數據處理系統能夠通過中間的私有或公共網絡而耦合到其他數據處理系統或遠程印表機或存儲設備。數據機、線纜數據機以及乙太網卡僅僅是當前可用的網絡適配器類型的幾個例子。從上述描述應當理解,在不脫離本發明真實精神的情況下,可以對本發明各實施方式進行修改和變更。本說明書中的描述僅僅是用於說明性的,而不應被認為是限制性的。 本發明的範圍僅受所附權利要求書的限制。
權利要求
1.一種用於乙太網前向糾錯層接收的數據流的幀邊界檢測方法,包括基於第一數據項、第二數據項以及前一校正子的中間計算結果,計算當前校正子,其中第一數據項是當前待測幀的最後一比特數據,第二數據項是所述當前待測幀的前一比特數據;以及使用當前校正子檢測所述當前待測幀的前一比特數據是否是一個乙太網前向糾錯層幀邊界。
2.根據權利要求1所述的方法,其中計算當前校正子包括 接收所述第一數據項,作為用於計算當前校正子的第一輸入;接收所述第二數據項並將所述第二數據項與第一參數進行邏輯與運算,得到用於計算當前校正子的第二輸入;將用於計算前一校正子的第一輸出進行1比特左移位並取模,得到用於計算當前校正子的第三輸入;將所述用於計算當前校正子的第一輸入、第二輸入和第三輸入進行異或運算,得到用於計算當前校正子的第一輸出;將用於計算當前校正子的第一輸出與第二參數進行邏輯異或運算,得到當前校正子。
3.根據權利要求2所述的方法,其中在取模的處理中使用以下多項式 g(x) = x32+x23+x21+xn+x2+l
4.根據權利要求2所述的方法,其中所述第一參數和所述第二參數是預先設定的固定參數。
5.根據權利要求1所述的方法,其中使用當前校正子檢測所述當前待測幀的前一比特數據是否是一個乙太網前向糾錯層幀邊界包括根據乙太網前向糾錯層幀格式,得到當前待測幀中的位於校驗碼位置的數據;以及在當前校正子與所述位於校驗碼位置的數據匹配的情況下,判定所述當前待測幀的前一比特數據是一個乙太網前向糾錯層幀邊界。
6.一種用於乙太網前向糾錯層接收的數據流的幀邊界檢測設備,該設備包括 緩存器,用於對數據流中的數據進行緩存,所述緩存器的數據長度大於1幀;校正子生成器,用於基於第一數據項、第二數據項以及前一校正子的中間計算結果計算當前校正子,其中第一數據項是當前待測幀的最後一比特數據,第二數據項是所述當前待測幀的前一比特數據;以及比較器,用於使用當前校正子檢測所述當前待測幀的前一比特數據是否是一個乙太網前向糾錯層幀邊界。
7.根據權利要求6所述的設備,其中所述校正子生成器包括 寄存器,用於存儲校正子的中間運算結果;移位器,用於對數據項進行移位; 取模器,用於對數據項進行取模運算; 邏輯與運算器,用於進行邏輯與運算; 第一異或器,用於將三個數據項進行異或運算;以及第二異或器,用於將兩個數據項進行異或運算,其中,所述第一異或器接收所述第一數據項,作為用於計算當前校正子的第一輸入;其中所述邏輯與運算器接收所述第二數據項並將所述第二數據項與第一參數進行邏輯與運算,得到用於計算當前校正子的第二輸入;其中所述移位器將所述寄存器存儲的用於計算前一校正子的第一輸出進行1比特左移位,所述取模器對移位後的數據取模,得到用於計算當前校正子的第三輸入;其中所述第一異或器將所述用於計算當前校正子的第一輸入、第二輸入和第三輸入進行異或運算,得到用於計算當前校正子的第一輸出並存儲在所述寄存器中;以及其中所述第二異或器將用於計算當前校正子的第一輸出與第二參數進行邏輯異或運算,得到當前校正子。
8.根據權利要求7所述的設備,其中所述取模器使用以下多項式進行取模 g(x) = x32+x23+x21+xn+x2+l
9.根據權利要求7所述的設備,其中所述第一參數和所述第二參數是預先設定的固定參數。
10.根據權利要求7所述的設備,所述比較器包括獲取器,用於根據乙太網前向糾錯層幀格式,得到當前待測幀中的位於校驗碼位置的數據;以及判斷器,用於在當前校正子與所述位於校驗碼位置的數據匹配的情況下,判定所述當前待測幀的前一比特數據是一個乙太網前向糾錯層幀邊界。
11.一種用於乙太網前向糾錯層接收的數據流的解碼方法,包括利用根據權利要求1-5中任一項的幀邊界檢測方法檢測所述數據流的幀邊界,並輸出當前校正子;根據當前校正子和當前待測幀的校驗碼確定當前幀中的錯誤;對當前待測幀進行解擾;以及基於所確定的錯誤對解擾的幀進行前向糾錯。
12.根據權利要求11所述的方法,還包括根據幀邊界檢測結果確定是進行幀邊界檢測還是進行前向糾錯。
13.根據權利要求11所述的方法,還包括將完成前向糾錯的數據重構成適用於物理編碼子層的格式。
14.一種用於乙太網前向糾錯層接收的數據流的解碼系統,包括根據權利要求6-10中任一項的幀邊界檢測設備,用於檢測所述數據流的幀邊界,並輸出當前校正子;錯誤診斷器,用於根據當前校正子和當前幀的校驗碼確定當前幀中的錯誤; 解擾器,用於對當前幀進行解擾;以及錯誤糾正器,用於基於錯誤診斷器確定的錯誤對解擾器所解擾的幀進行前向糾錯。
15.根據權利要求14所述的系統,還包括控制器,用於根據來自所述幀邊界檢測設備的幀邊界檢測結果確定是進行幀邊界檢測還是進行前向糾錯。
16.根據權利要求14所述的系統,還包括重構器,用於將完成前向糾錯的數據重構成適用於物理編碼子層的格式。
全文摘要
公開了一種用於乙太網前向糾錯層接收的數據流的幀邊界檢測方法和設備,並公開了一種用於乙太網前向糾錯層接收的數據流的解碼方法和系統。該幀邊界檢測設備可以包括緩存器,用於對數據流中的數據進行緩存,所述緩存器的數據長度大於1幀;校正子生成器,用於基於第一數據項、第二數據項以及前一校正子的中間計算結果計算當前校正子,其中第一數據項是當前待測幀的最後一比特數據,第二數據項是所述當前待測幀的前一比特數據;以及比較器,用於使用當前校正子檢測所述第一比特數據是否是一個乙太網前向糾錯層幀邊界。該幀邊界檢測設備可以提高幀邊界檢測速度。
文檔編號H04L1/00GK102263609SQ20101019237
公開日2011年11月30日 申請日期2010年5月31日 優先權日2010年5月31日
發明者劉洋, 李宇飛, 林一帆, 範博 申請人:國際商業機器公司