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