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