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