傳輸符號編碼的傳送流中的糾錯碼的存儲器高效的方法
【專利說明】傳輸符號編碼的傳送流中的糾錯碼的存儲器高效的方法
[0001]相關(guān)申請的交叉引用
[0002]本申請要求2014年12月4日遞交的、編號為62/087,772的美國臨時申請的優(yōu)先權(quán)和權(quán)益,該美國臨時申請的全部內(nèi)容通過引用合并于此。
技術(shù)領(lǐng)域
[0003]本發(fā)明實(shí)施例的方面涉及傳輸符號編碼的傳送流中的糾錯碼的方法。
【背景技術(shù)】
[0004]可使用串行數(shù)據(jù)鏈路(例如一次一位,例如用光纖線纜鏈路)實(shí)施高速數(shù)據(jù)傳送。數(shù)據(jù)流可由成串行化順序(“字節(jié)”)的多個位組(例如8位組)組成??墒褂弥T如用8b/10b編碼的DC平衡來在傳送前對數(shù)據(jù)流(“數(shù)據(jù)字節(jié)”)進(jìn)行編碼(例如,可將8位字節(jié)轉(zhuǎn)換成10位符號),以便被傳送的O位(S卩,表示二進(jìn)制值“O”的位)的數(shù)目與被傳送的I位(S卩,表示二進(jìn)制值“I”的位)的數(shù)目相等(或基本相等,例如相差不多于一個或兩個),且沒有O位或I位的單一負(fù)擔(dān)(例如,不多于5個連續(xù)的O位或I位)。然后,在接收側(cè)上,例如用相應(yīng)的10b/8b解碼,將編碼的數(shù)據(jù)流解碼,以恢復(fù)原始數(shù)據(jù)流。這些技術(shù)可例如用DC平衡幫助時鐘恢復(fù)和相位恢復(fù),例如幫助接收設(shè)備確定所傳送的編碼數(shù)據(jù)的傳送速率。
[0005]在數(shù)據(jù)傳送中可使用諸如漢明碼、里德-所羅門碼或者低密度奇偶校驗(yàn)(LDPC)碼之類的前向糾錯(FEC)碼,以通過提供用于查錯和糾錯的冗余位或字節(jié)(“奇偶位”或“奇偶字節(jié)”)來改進(jìn)通信的可靠性。這些奇偶位或字節(jié)伴隨數(shù)據(jù)傳送(數(shù)據(jù)位或字節(jié))并允許接收者驗(yàn)證正確數(shù)據(jù)被發(fā)送,并可甚至允許接收者有能力糾正傳送中有限數(shù)目的錯誤。漢明碼相對更直接和有效,但僅糾正有限數(shù)目的錯誤(例如,很少的位)。里德-所羅門碼和LDPC碼比漢明碼計算強(qiáng)度更大,但提供明顯更多的錯誤被檢測或糾正(例如,整個字節(jié))。
[0006]前向糾錯也可與DC平衡組合。例如,可針對數(shù)據(jù)流(數(shù)據(jù)字節(jié))生成奇偶位或字節(jié)用于前向糾錯,并且在傳送前,通過DC平衡將數(shù)據(jù)和奇偶位或字節(jié)編碼成符號。然后接收者對符號進(jìn)行解碼,并使用被解碼的數(shù)據(jù)位或字節(jié)上的被解碼的奇偶位或字節(jié)來執(zhí)行錯誤檢測和糾正。然而,這引入了在數(shù)據(jù)傳送期間引入錯誤的問題。例如,遭破壞的符號可映射成無效符號或表示不同字節(jié)的有效符號,因此引起傳送中的與一位錯誤一樣小的錯誤,從而導(dǎo)致在所接收的數(shù)據(jù)和奇偶中的多個位錯誤(例如,可包括8個分離的位錯誤的整個字節(jié))。這可呈現(xiàn)針對諸如漢明碼的低成本FEC算法的問題,或被迫使用更復(fù)雜的FEC算法(例如里德-所羅門或LDPC)來提供從一個或多個字節(jié)錯誤而非僅很少個位錯誤來恢復(fù)的能力,這增大了編碼器和解碼器復(fù)雜度。
[0007]在該【背景技術(shù)】部分中公開的上述信息僅用于增進(jìn)對本發(fā)明的背景的理解,因此,其可包含不構(gòu)成對于本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
【發(fā)明內(nèi)容】
[0008]本發(fā)明實(shí)施例的方面致力于傳輸符號編碼的傳送流中的糾錯碼(ECC)的存儲器高效的方法。
[0009]本發(fā)明實(shí)施例的方面致力于將前向糾錯(FEC)算法功能置于將數(shù)據(jù)流編碼成符號之后且在從符號解碼數(shù)據(jù)流之前,以及將FEC算法生成的糾錯碼(ECC)插入到主數(shù)據(jù)流中的方法。本發(fā)明的更進(jìn)一步的實(shí)施例致力于創(chuàng)建被編碼的傳送流的ECC、在被編碼的傳送流之前傳輸ECC、提取并緩存ECC,以及使用ECC對解碼之前所接收的傳送流中的錯誤進(jìn)行糾正(下文中稱作“基于符號的糾錯”)。通過在被編碼的傳送流之前傳送ECC,同時執(zhí)行糾錯,接收器處的緩存器可僅存儲ECC,而非傳送流。這減小了接收器處的緩存器存儲器的大小,并且結(jié)果,減小了接收器的大小和復(fù)雜度,并減小了總系統(tǒng)成本。
[0010]附加的實(shí)施例致力于降低糾正高速傳送流的成本和延遲。通過示例的方式,一些實(shí)施例致力于通過使簡單FEC算法(例如具有一位或兩位錯誤糾正或檢測的漢明碼)能夠糾正被編碼的傳送流來降低成本。如此,可避免諸如里德-所羅門或LDPC之類的更復(fù)雜的FEC算法,這可將等同編碼/解碼解決方案的復(fù)雜度(例如,邏輯門數(shù)量)降低一個數(shù)量級。這也可使能夠避免諸如水平和垂直奇偶校驗(yàn)(及其關(guān)聯(lián)的大量包緩存)之類的高延遲解決方案。
[0011]根據(jù)本發(fā)明的一些示例性實(shí)施例,提供一種傳輸傳送流中的糾錯碼(ECC)的方法,該方法包括:由處理器將來自數(shù)據(jù)源的數(shù)據(jù)流編碼成數(shù)據(jù)符號;由所述處理器從所述數(shù)據(jù)符號生成第一ECC;由所述處理器將所述第一ECC編碼成第一糾錯碼(ECC)符號;由所述處理器將所述數(shù)據(jù)符號和所述第一ECC符號融合到所述傳送流中,所述第一ECC符號在所述數(shù)據(jù)符號之前被融合到所述傳送流中;以及由所述處理器將所融合的傳送流經(jīng)由通信鏈路傳送至匯入設(shè)備,所述第一 ECC符號在所述數(shù)據(jù)符號之前被傳送。
[0012]在一實(shí)施例中,將所述數(shù)據(jù)流編碼成所述數(shù)據(jù)符號和將所述第一ECC編碼成所述第一 ECC符號包括相同的編碼技術(shù)。
[0013]在一實(shí)施例中,所述方法進(jìn)一步包括:由所述處理器從所述第一ECC生成第二ECC;以及由所述處理器將所述第二ECC編碼成第二ECC符號,其中將所述數(shù)據(jù)符號和所述第一ECC符號融合包括:由所述處理器將所述第二ECC符號融合到所述傳送流中。
[0014]在一實(shí)施例中,將所述第一ECC編碼包括:由所述處理器,將第一控制符號在所述第一ECC符號之前插入所述傳送流中,并將第二控制符號在所述第一ECC符號與所述數(shù)據(jù)符號之間插入到所述傳送流。
[0015]在一實(shí)施例中,傳送所融合的傳送流包括:由所述處理器將所融合的傳送流串行化;以及由所述處理器在串行數(shù)據(jù)鏈路上將串行化的傳送流傳送到所述匯入設(shè)備。
[0016]在一實(shí)施例中,所述方法進(jìn)一步包括由所述處理器將所述數(shù)據(jù)符號緩存在數(shù)據(jù)流緩存器中。
[0017]根據(jù)本發(fā)明的一些示例性實(shí)施例,提供一種用于從包括傳輸糾錯碼(ECC)的傳送流提取數(shù)據(jù)流的方法,該方法包括:由匯入設(shè)備的處理器經(jīng)由通信鏈路接收來自源設(shè)備的所述傳送流;由所述處理器從所接收的傳送流提取糾錯碼(ECC)符號;由所述處理器將所述ECC符號解碼成第一ECC;由所述處理器緩存所述第一ECC;由所述處理器從所述傳送流提取數(shù)據(jù)符號;由所述處理器用所緩存的第一ECC糾正所述數(shù)據(jù)符號中的錯誤;以及由所述處理器將經(jīng)糾正的數(shù)據(jù)符號解碼成由所述匯入設(shè)備輸出的數(shù)據(jù)流。
[0018]在一實(shí)施例中,將所述ECC符號解碼成所述第一ECC和將經(jīng)糾正的數(shù)據(jù)符號解碼成所述數(shù)據(jù)流包括相同的解碼技術(shù)。
[0019]在一實(shí)施例中,將所述ECC符號解碼包括:由所述處理器將所述ECC符號解碼成第二ECC;以及由所述處理器用所述第二ECC糾正所述第一ECC中的錯誤,并且緩存所述第一ECC包括:由所述處理器緩存經(jīng)糾正的第一ECC,并且糾正所述數(shù)據(jù)符號中的錯誤包括:由所述處理器用所緩存的經(jīng)糾正的第一 ECC糾正所述數(shù)據(jù)符號中的錯誤。
[0020]在一實(shí)施例中,提取所述ECC符號包括:由所述處理器識別所述ECC符號與所述數(shù)據(jù)符號之間的并來自所述傳送流的控制符號。
[0021]在一實(shí)施例中,接收所述傳送流包括:由所述處理器通過串行數(shù)據(jù)鏈路接收來自所述源設(shè)備的所述傳送流;以及由所述處理器將所接收的傳送流解串行化。
[0022]根據(jù)本發(fā)明的一些示例性實(shí)施例,提供一種傳輸傳送流中的糾錯碼(ECC)的方法,該方法包括:由源設(shè)備的第一處理器將來自數(shù)據(jù)源的數(shù)據(jù)流編碼成第一數(shù)據(jù)符號;由所述第一處理器從所述第一數(shù)據(jù)符號生成ECC;由所述第一處理器將所述ECC緩存在所述源設(shè)備處直至已符合標(biāo)準(zhǔn);由所述第一處理器將所述第一數(shù)據(jù)符號和所緩存的ECC融合到所述傳送流中,所緩存的ECC在所述第一數(shù)據(jù)符號之前被融合到所述傳送流中;由所述第一處理器將所融合的傳送流經(jīng)由通信鏈路傳送至匯入設(shè)備,所緩存的ECC在所述第一數(shù)據(jù)符號之前被傳送;由所述匯入設(shè)備的第二處理器接收來自所述源設(shè)備的所接收的傳送流;由所述第二處理器從所接收的傳送流提取所述ECC;由所述第二處理器將所述ECC緩存在所述匯入設(shè)備處;由所述第二處理器從所接收的傳送流提取第二數(shù)據(jù)符號;由所述第二處理器用在所述匯入設(shè)備處緩存的ECC糾正所述第二數(shù)據(jù)符號中的錯誤;以及由所述第二處理器將經(jīng)糾正的第二數(shù)據(jù)符號解碼成由所述匯入設(shè)備輸出的經(jīng)糾正的數(shù)據(jù)流。
[0023]在一實(shí)施例中,將所