FEC 前向糾錯
“前向糾錯” ,是廣泛應用于通信系統中的編碼技術(shù),用以保證數據的準確性,在當前400G級別和所有未來(lái)的數據中心通訊標準中是無(wú)可避免的。
什么是FEC
關(guān)于FEC的權威定義,我們這里不妨借用一下Wiki上的描述:
“在電信、信息論和編碼理論中,前向糾錯(Forward Error Correction ,簡(jiǎn)稱(chēng)FEC)或信道編碼是一種用于在不可靠或有噪聲的通信信道上控制數據傳輸錯誤的技術(shù)。中心思想是發(fā)送者以冗余的方式對消息進(jìn)行編碼,通常使用糾錯碼(Error Correction Code,簡(jiǎn)稱(chēng)ECC)。
冗余設計允許接收機檢測到信息中出現的有限數量的錯誤,并且在不重新傳輸的情況下糾正這些錯誤。FEC使接收機能夠在不需要數據重新傳輸的情況下糾正錯誤,但代價(jià)是固定的、更高的前向信道帶寬。因此,FEC被應用于諸如單向通信鏈路等重傳代價(jià)高昂或不可能的情況,以及向多個(gè)接收機發(fā)送數據時(shí)。例如,在圍繞天王星運行的衛星上,由于解碼錯誤而重新傳輸會(huì )造成5小時(shí)的延遲;FEC技術(shù)通常被用到大容量存儲(基于磁、光和固態(tài)/閃存)設備中以恢復損壞的數據;FEC技術(shù)廣泛應用于調制解調器中;FEC技術(shù)還可以用于主存儲器為ECC存儲器的系統和廣播場(chǎng)合。
接收機中的FEC處理可應用于數字比特流或數字調制載波的解調。對于后者,FEC是接收機中模數轉換的一個(gè)組成部分。Viterbi解碼器實(shí)現了一種軟判決算法,從被噪聲污染的模擬信號中解調數字數據。許多FEC編碼器還可以產(chǎn)生一個(gè)誤碼率(BER)信號,該信號可以作為反饋來(lái)微調模擬接收電子器件。
ECC的設計決定了可以校正的最大誤碼率或丟失比特率,因此不同的前向糾錯碼適用于不同的情況。一般來(lái)說(shuō),包含更多冗余的強編碼方式,需要占用有效帶寬來(lái)進(jìn)行傳輸,在提高接收到信號的信噪比的同時(shí)會(huì )降低有效比特率。Shannon的噪聲信道編碼定理回答了這樣一個(gè)問(wèn)題:在使用將解碼錯誤概率變?yōu)榱愕淖钣行У木幋a時(shí),數據通信還剩下多少帶寬。這就建立了在給定基本噪聲水平下,信道的理論最大信息傳輸速率的極限。他的證明并不具有建設性,因此無(wú)法洞察如何構建可實(shí)現能力的代碼。然而,經(jīng)過(guò)多年的研究,一些先進(jìn)的FEC系統如極性碼在無(wú)限長(cháng)幀的假設下獲得了Shannon信道容量。
”
——《維基百科-Forward error correction》
到底哪里會(huì )用到FEC?
了解了FEC的定義后,我們有了一個(gè)基本的概念,FEC是用來(lái)提升通信質(zhì)量的,在有限帶寬下如果要保障有效的高數據率傳輸就必須要用到FEC。但是到底生活中哪些不為人知的地方用到了FEC呢?
5G的速度可以達到1GB每秒,用的人一多,主干網(wǎng)怎么負擔得起?想想你在農藥戰場(chǎng)正準備進(jìn)行激烈的團戰,坦克都已經(jīng)進(jìn)團嘲諷對面了,突然因為網(wǎng)絡(luò )傳輸錯誤C位跟著(zhù)閃現進(jìn)去了,你是什么感受?不過(guò)也不用擔心,早有人未雨綢繆。
手機通信數據中斷
目前,全國正在推進(jìn)新型基礎設施建設,5G就是新基建七大領(lǐng)域之一。5G時(shí)代承載帶寬需求的大幅度上升、網(wǎng)絡(luò )扁平化、大型中心機房和數據中心的互聯(lián),將給骨干網(wǎng)提出巨大挑戰,有專(zhuān)家認為,目前單波100G骨干網(wǎng)難以滿(mǎn)足5G商用成熟之后的網(wǎng)絡(luò )帶寬需求。據工信部數據,2019年,移動(dòng)互聯(lián)網(wǎng)接入流量消費達1220億GB,比上年增長(cháng)71.6%。截至去年12月底,互聯(lián)網(wǎng)寬帶接入端口數量達到9.16億個(gè),其中光纖接入(FTTH/0)端口達到8.36億個(gè)。工信部通信科技委常務(wù)副主任、中國電信集團公司科技委主任韋樂(lè )平預計,中國骨干網(wǎng)容量將在2020年突破1Pbps,2022年有望接近1.4Pbps。值得注意的是,有專(zhuān)家指出,骨干網(wǎng)正在向400G、600G演進(jìn),預計2021年1T設備成熟。
通信數據量增長(cháng)趨勢圖
由于龐大的數據量導致鏈路容限接近飽和,數據中心和承載網(wǎng)絡(luò )都具有超低時(shí)延的要求,這導致丟失數據無(wú)法再次重新傳遞,為了節省成本采用多電平傳輸的方式。4 Pulse Amplitude Modulation(簡(jiǎn)稱(chēng)PAM4)作為新出現的高速串行總線(xiàn)編碼模式,在幾乎所有的超過(guò)200G、400G的標準中都存在。由于在同等速率的情況下帶寬的要求是NRZ的一半,對于絕大多數的高速電纜,背板以及連接器而言,通過(guò)PAM4可以在速率增倍的情況下具備同樣的奈奎斯特頻率。
由于每一個(gè)symbol或者每一個(gè)UI傳輸2個(gè)比特的數據,也就是在同樣的輸出幅度的情況下,需要區分4 個(gè)不同的電平,這帶來(lái)了9dB的信噪比惡化。在高速總線(xiàn)傳輸過(guò)程中,抖動(dòng)和噪聲是影響誤碼率的最關(guān)鍵指標,信噪比惡化意味著(zhù)誤碼率的提升。所以在相同速率的情況下對比NRZ和PAM4,PAM4利用了4電平的調制方式通過(guò)犧牲信噪比來(lái)?yè)Q取奈奎斯特頻率的減半,也就是說(shuō) PAM4對傳輸帶寬的要求減少了一半。下圖是NRZ和PAM4 這2種編碼模式下的帶寬、速率、定時(shí)、信噪比的對比。
NRZ和PAM4對比圖
雖然相同帶寬下傳輸速率提高了,即便是以中星聯(lián)華科技(北京)有限公司的SL3040A PAM4高速誤碼儀發(fā)送端的優(yōu)越質(zhì)量,在經(jīng)過(guò)了傳輸通道后糟糕的信噪比會(huì )導致誤碼率超過(guò)容限。FEC技術(shù)可以有效降低數據傳輸誤碼率,具體可以降低到什么程度呢?我們以400G中 (53.125 Gbps每通道)為例:電信號的誤碼率要求在糾錯前為1E-5/1E-6,而光信號為2.4 E-4,采用FEC糾錯后誤碼率可以?xún)?yōu)于1E-15,由此可見(jiàn)FEC雖然增加了傳輸冗余卻顯著(zhù)提高了數據的有效性。
中星聯(lián)華SL3040A 53.125Gbps發(fā)送端眼圖
FEC是如何實(shí)現的
FEC在發(fā)送端對信源信息進(jìn)行一定形式的編碼,如Hamming編碼、Golay編碼、BCH編碼、Reed Solomon編碼(簡(jiǎn)稱(chēng)RS編碼),然后用新的編碼流進(jìn)行傳輸,在接收端再進(jìn)行解碼與糾錯,光通信領(lǐng)域使用較多的編碼形式以RS編碼為主。
協(xié)議規范中對FEC編碼的要求
RS編碼采用硬件可以實(shí)現的有限域運算實(shí)現,是一種交織編碼,使用一組糾錯碼。與低密度校驗碼和turbo碼相比,具有更小的編碼增益。但是它有很高的編碼速率并且復雜度低,所以它適用于許多應用場(chǎng)景。交織編碼將可能出現的長(cháng)串誤碼分散到多個(gè)RS編碼序列中,使得分散后的誤碼長(cháng)度落到編碼糾錯能力范圍之內,從而使得交織處理之前超出糾錯能力的長(cháng)誤碼串也能得到正確的恢復。RS編碼會(huì )將需要編碼的流數據重新排列為以「符號(symbol)」為單位的數據塊,所以采用RS編碼的FEC糾正的是Symbol error而不是bit error。
RS重新編碼
以RS(544,514,15,10)表示方式舉例,每個(gè)符號Symbol數據位寬位10位(m=10bits),原始數據為514個(gè)符號(k=514),校驗數據為30個(gè)Symbol(t=15),最終編碼完成后符號總數為544個(gè)Symbol(n=544)。
IEEE 802.3中定義了編碼的算法,編碼的數學(xué)過(guò)程并不復雜。將原始64B/66B的codeword編碼的數據后面補30個(gè)0,除以生成多項式 g(x)取余下的多項式為校驗多項式p(x),將校驗多項式加到剛才補過(guò)0的編碼數據多項式中,就是最終生成的編碼。
實(shí)際實(shí)現時(shí)將原始輸入的64B/66B編碼經(jīng)過(guò)轉碼器對每四個(gè)通道的數據進(jìn)行轉碼,(262比特到257比特) 從而減少編碼開(kāi)銷(xiāo)。對轉碼后的數據進(jìn)行加擾,以防止長(cháng)時(shí)間運行0或1。將對齊游標插入到16條PCS通道。每條通道都有其各自唯一的游標。經(jīng)過(guò)一個(gè)變速器(gearbox)給每514個(gè)比特增加30比特,為傳輸FEC校驗和預留好位置。補充的冗余位數會(huì )在兩個(gè)FEC編碼引擎之間進(jìn)行分配。分配結束后,任何突發(fā)誤差都會(huì )由兩個(gè)FEC引擎負責,從而提供了更好的糾錯能力。FEC的編碼交織處理后,數據會(huì )被分配給16個(gè)PCS通道。在PAM4系統中,每?jì)蓚€(gè)通道相互連接,形成8個(gè)50G通道。在接收方向上,情況恰好與此相反。
在RS ( 544, 514, 15, 10 )每一幀中最大可修正錯誤符號個(gè)數為15個(gè),每一個(gè)symbol包含10bits。每一組編碼中可以糾正15個(gè)Symbol,如果符號誤差超過(guò) 15 個(gè),就會(huì )導致編碼無(wú)法被糾正。在 400GE 系統中,一個(gè)錯誤的編碼將會(huì )導致大約 15 個(gè) 64B數據包丟失。
中星聯(lián)華(Sinolink)解決方案
具備FEC 符號錯誤糾正功能的
XBERT系列SL3040A NRZ/PAM4誤碼儀
SL3040A NRZ/PAM4誤碼儀
通道數支持4/8通道;
每一個(gè)通道支持PAM4和NRZ任意切換;
支持22Gbaud-29.6Gbaud PAM4收發(fā)速率;
支持9Gbps到14Gbps、18-29.6Gbps NRZ收發(fā)速率;
速率步進(jìn)1kbps;
上升下降時(shí)間:14ps(typ);
輸出抖動(dòng): 28G輸出下固有隨機抖動(dòng)Rj小于800fs;
PPG碼型發(fā)生器最大輸出幅度從500mV/1000mV可選;
支持各種常用碼型: prbs7/ 9/11/13/15/ 23/ 31, prbs7Q~31Q、SSPRQ、用戶(hù)自定義碼型;
誤碼儀輸入靈敏度50mV;
具備FEC 符號錯誤糾正功能,具有誤碼符號分布圖,支持FEC-KR4和FEC-KP4
在軟件界面上可以快速設置FEC模式,顯示糾錯前的誤碼個(gè)數和誤碼率、糾錯后的誤碼個(gè)數和誤碼率,糾正的誤碼個(gè)數。具有接收端自動(dòng)檢測功能,可以自動(dòng)匹配支持的碼型并顯示,可以自動(dòng)糾正接收端極性,避免了使用過(guò)程中因錯誤鏈接帶來(lái)的復雜操作。
SL3040A FEC模式軟件界面
誤碼檢測同時(shí)還能夠檢測誤碼個(gè)數和誤碼率曲線(xiàn)隨時(shí)間的變化,進(jìn)行無(wú)人值守任務(wù)時(shí),能夠有效定位到各個(gè)通道故障發(fā)生時(shí)間,為調試測試使用帶來(lái)了極大便利。
同時(shí)能夠監測不同通道的錯誤符號位置,通過(guò)柱狀圖能夠有效判斷系統FEC余量和誤碼分布狀況。
產(chǎn)生誤碼時(shí),還可以通過(guò)眼圖等高線(xiàn)功能查看能量分布,通過(guò)圖形可以直觀(guān)判斷接收端眼圖的線(xiàn)性度、電平位置和信噪比等。
中星聯(lián)華科技(Sinolink Technologies)XBERT系列高速串行誤碼儀具有優(yōu)異的性能指標、豐富的功能特點(diǎn)、靈活的選件配置和超高的整機集成度,為高速串行電路產(chǎn)品預研、設計和生產(chǎn)測試提供了強大的性能和靈活性保障。全系列產(chǎn)品具有速率1kbps連續可調的特點(diǎn),有效的保證了測試的靈活性和全面性,可以有效測試被測電路的余量和極限參數。同時(shí)可編程碼型發(fā)生器(PPG)能夠提供多級去加重,補償信號在傳輸過(guò)程中的損耗,改善信號質(zhì)量。誤碼檢測器(ED)內置了均衡電路,無(wú)需外接有源或無(wú)源的信號調理電路來(lái)保證鏈路的信號完整性,同時(shí)內置快速鎖定的時(shí)鐘恢復模塊,保證了誤碼測試時(shí)鏈路的穩定性,使得誤碼檢測器自身誤碼率小于10-15的嚴格要求,保證在惡劣復雜的測試環(huán)境中誤碼測試的準確性。
作者:Derek Yin