專利名稱:用于執(zhí)行前向糾錯的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本專利文檔中描述的技術(shù)概括地涉及針對數(shù)據(jù)傳輸?shù)募m錯。更特別地,公開了用于針對數(shù)據(jù)傳輸?shù)那跋蚣m錯的系統(tǒng)和方法。
背景技術(shù):
在通信系統(tǒng)中經(jīng)常使用前向糾錯(FEC),并且前向糾錯基于傳輸編碼格式的數(shù)據(jù)。 通常通過使用預(yù)定算法向用于傳輸?shù)脑紨?shù)據(jù)添加冗余來執(zhí)行FEC。對原始數(shù)據(jù)的冗余允許解碼器檢測和糾正傳輸錯誤。存在FEC碼的很多示例,包括Reed-Soloman (RS)碼。RS碼是塊糾錯碼,并且在國際電信聯(lián)盟標(biāo)準(zhǔn)ITU-T(推薦J. 81)中指定。例如,RS編碼器接收預(yù)定塊格式的原始數(shù)據(jù)并且向原始數(shù)據(jù)添加冗余比特來生成碼塊(例如,碼字)。RS解碼器接收編碼的數(shù)據(jù)和相關(guān)的奇偶校驗數(shù)據(jù),并且在發(fā)生傳輸錯誤時恢復(fù)原始數(shù)據(jù)。提供上面的描述作為對本領(lǐng)域中相關(guān)技術(shù)的一般性概覽,而不應(yīng)被視為承認(rèn)其包含的任何信息構(gòu)成針對本專利申請的現(xiàn)有技術(shù)。
發(fā)明內(nèi)容
根據(jù)在此描述的教示,提供用于針對數(shù)據(jù)流中的幀執(zhí)行前向糾錯的系統(tǒng)和方法。 示例解碼器包括狀態(tài)機和解碼單元。該狀態(tài)機被配置為確定解碼器所接收的幀內(nèi)的碼塊是完整碼塊還是部分碼塊,幀包括多個碼塊。解碼單元被配置為接收碼塊,并且當(dāng)碼塊是部分碼塊時,基于對該部分碼塊的解碼和作為對解碼單元的輸入的附加部分解碼結(jié)果,生成輸
出ο作為進(jìn)一步的示例,解碼單元還被配置為當(dāng)碼塊是完整碼塊時,基于對該完整碼塊的解碼來生成輸出。解碼單元包括多個級(stage),每級對應(yīng)于表示碼塊的多項式的項。 當(dāng)確定碼塊是完整碼塊時,解碼單元被配置為從多個級的起始級開始向多個級輸入碼塊。 當(dāng)確定碼塊是部分碼塊時,解碼單元被配置為從多個級的中間級開始向多個級輸入碼塊, 基于碼塊的預(yù)定結(jié)構(gòu)來確定中間級。作為另一示例,解碼單元包括綜合癥(syndrome)組件和糾錯組件。綜合癥組件被配置為接收碼塊,并且生成碼塊的綜合癥值,綜合癥組件包括第一多個級,第一多個級的每個對應(yīng)于表示碼塊的多項式的項。糾錯組件被配置為接收綜合癥值,以及基于綜合癥值來確定碼塊是否包含錯誤,糾錯組件包括第二多個級,第二多個級的每個對應(yīng)于表示碼塊的多項式的項。
4
作為其他示例,當(dāng)確定碼塊是完整碼塊時,綜合癥組件被配置為從第一多個級的起始級開始向第一多個級輸入碼塊。當(dāng)確定碼塊是部分碼塊時,綜合癥組件被配置為從第一多個級的中間級開始向第一多個級輸入碼塊,基于碼塊的預(yù)定結(jié)構(gòu)確定中間級。當(dāng)確定碼塊是完整碼塊時,糾錯組件被配置為從第二多個級的起始級開始向第二多個級輸入碼塊的綜合癥值。當(dāng)確定碼塊是部分碼塊時,糾錯組件被配置為從第二多個級的中間級開始向第二多個級輸入碼塊的綜合癥值,基于碼塊的預(yù)定結(jié)構(gòu)確定中間級。
作為附加示例,解碼單元還包括緩沖器,其被配置為當(dāng)確定碼塊是部分碼塊時,從綜合癥組件接收綜合癥值。糾錯組件被配置為當(dāng)確定碼塊是完整碼塊時,直接從綜合癥組件接收綜合癥值。糾錯組件被配置為當(dāng)確定碼塊是部分碼塊時,在預(yù)定延遲后從緩存接收綜合癥值。狀態(tài)機還被配置為至少部分地基于幀的預(yù)定結(jié)構(gòu)和幀內(nèi)的碼塊的位置,來確定碼塊是完整碼塊還是部分碼塊。狀態(tài)機還被配置為至少部分地基于包含在碼塊中的用于傳輸?shù)脑紨?shù)據(jù)的字節(jié)數(shù)量,來確定碼塊是完整碼塊還是部分碼塊。當(dāng)碼塊包含用于傳輸?shù)脑紨?shù)據(jù)的239字節(jié)時,確定碼塊是完整碼塊;或者,當(dāng)碼塊包含用于傳輸?shù)脑紨?shù)據(jù)的 104字節(jié)時,確定碼塊是部分碼塊。作為另一示例,提供一種用于針對數(shù)據(jù)流的幀執(zhí)行前向糾錯的方法。接收包括多個碼塊的幀。針對多個碼塊的每個碼塊,使用狀態(tài)機來確定碼塊是完整碼塊還是部分碼塊。 基于該確定來在解碼器中對碼塊進(jìn)行解碼。當(dāng)確定碼塊是部分碼塊時,基于對部分碼塊的解碼和作為對解碼器的輸入的附加部分解碼結(jié)果來生成輸出。作為進(jìn)一步的示例,當(dāng)確定碼塊是完整碼塊時,基于對整個碼塊的解碼來生成輸出?;诖_定在解碼器中對碼塊進(jìn)行解碼包括生成針對碼塊的綜合癥值,以及基于生成的綜合癥值來執(zhí)行針對碼塊的糾錯。當(dāng)確定碼塊是部分碼塊時,在預(yù)定延遲后執(zhí)行針對碼塊的糾錯。對碼塊是完整碼塊還是部分碼塊的確定至少部分地基于幀的預(yù)定結(jié)構(gòu)和幀內(nèi)的碼塊的位置。
圖1是根據(jù)本公開的實施方式的、用于對具有幀的數(shù)據(jù)流執(zhí)行前向糾錯(FEC)的示例解碼器的圖示,其中幀具有完整和部分碼塊兩者。圖2示出了根據(jù)本公開的實施方式的、從原始數(shù)據(jù)生成的GPON幀的示例。圖3是根據(jù)本公開的實施方式的、詳示圖1的示例解碼器的圖示。圖4是根據(jù)本公開的實施方式的、圖3的示例綜合癥單元和示例糾錯單元的圖示。圖5是用于使用圖3的解碼器來處理完整碼塊的序列的示例時序圖。圖6A-圖6B是根據(jù)本公開的實施方式的、兩個背靠背GPON幀的碼塊的示例特定序列的圖示。圖7是用于使用圖3中的解碼器來處理碼塊的特定序列的示例時序圖。圖8是根據(jù)本公開的實施方式的、用于針對數(shù)據(jù)流中的幀來執(zhí)行前向糾錯的示例流程圖。
具體實施例方式圖1是根據(jù)本公開的實施方式的、用于對具有幀(其中該幀具有完整和部分碼塊兩者)的數(shù)據(jù)流執(zhí)行前向糾錯(FEC)的示例解碼器100的圖示。在某些類型的通信系統(tǒng)中, 諸如支持吉比特的無源光網(wǎng)絡(luò)(GPON)和10吉比特GP0N,使用預(yù)定結(jié)構(gòu)傳輸數(shù)據(jù)的每個幀, 該預(yù)定結(jié)構(gòu)包括跟隨有部分碼塊的多個完整碼塊。圖1中描述的示例解碼器100確定數(shù)據(jù)的幀中的傳入碼塊是完整碼塊還是部分碼塊,并且基于此確定,為解碼單元選擇合適的操作模式。具體而言,圖1中描述的解碼器100包括狀態(tài)機102和解碼單元104。在操作中, 狀態(tài)機102監(jiān)視所接收幀的傳入碼塊,并且例如基于幀的標(biāo)準(zhǔn)化結(jié)構(gòu)和幀內(nèi)碼塊的位置的先驗知識,確定特定傳入碼塊106是完整碼塊還是部分碼塊。繼而,根據(jù)該確定,狀態(tài)機102 向解碼單元104輸出模式選擇信號108以選擇用于解碼單元104的操作模式,并且向解碼單元104(例如向解碼單元104中的初始處理級或向中間處理級),提供傳入碼塊106,從而基于該確定進(jìn)行合適的處理。在一個實施方式中,解碼單元104包括用于處理傳入碼塊106多個級(例如,“級 1”··· “級m,,··· “級η”)。如果模式選擇信號108指示傳入碼塊106是完整碼塊,則解碼單元104進(jìn)入針對完整碼塊的操作模式,并且從始級(級1110)開始向級中輸入碼塊106 以供解碼。另一方面,如果模式選擇信號108指示傳入碼塊106是部分碼塊,則解碼單元 104進(jìn)入針對部分碼塊的操作模式,并且從中間級(級mll2)開始向級中輸入碼塊106以供解碼。根據(jù)一個實施方式,當(dāng)碼塊106是部分碼塊時,連同附加信息向中間級m提供碼塊 106,附加信息例如是在一個或多個初始級(諸如級1110)處對部分碼塊解碼之后獲得的部分解碼結(jié)果。在某些實施方式中,這是可能的,因為以統(tǒng)一的方式(例如,利用零)“填充” 部分碼塊,從而使得在解碼單元104的初始級處的所有部分碼塊的初始解碼產(chǎn)生相同的結(jié)果。在處理碼塊106之后,解碼單元104可以用于對幀中的后續(xù)碼塊進(jìn)行解碼。圖2示出了根據(jù)本公開的實施方式的、在200處從原始數(shù)據(jù)生成的GPON幀的示例。RS碼經(jīng)常用于向原始數(shù)據(jù)添加冗余比特(例如,奇偶校驗數(shù)據(jù))以生成編碼的碼塊(例如,碼字)。在圖2中看到兩個幀,原始數(shù)據(jù)幀202和GPON幀204。原始數(shù)據(jù)幀202具有物理控制塊下游(PCBD),以及多個原始凈荷數(shù)據(jù)塊。通過向原始數(shù)據(jù)幀202的數(shù)據(jù)塊添加奇偶校驗數(shù)據(jù)來生成GPON幀204。例如,奇偶校驗數(shù)據(jù)206附加到數(shù)據(jù)幀202中的原始數(shù)據(jù)塊208,以生成GPON幀204的碼塊210。GPON幀204通常具有標(biāo)準(zhǔn)化結(jié)構(gòu)和固定的碼塊大小。在一個實施方式中,使用表示為RS 055,239,8)的RS碼,GPON幀204包括152完整碼塊,每個完整碼塊具有239字節(jié)的原始數(shù)據(jù)和16字節(jié)的奇偶校驗數(shù)據(jù),以及定位在GPON幀末尾處的一個后續(xù)部分碼塊,其具有104字節(jié)的原始數(shù)據(jù)和16字節(jié)的奇偶校驗數(shù)據(jù)。圖3是根據(jù)本公開的實施方式的、詳示圖1的示例解碼器的圖示。如上面參考圖1 根據(jù)一個實施方式指出的,解碼器確定GPON幀中的傳入碼塊是完整碼塊還是部分碼塊,并且基于此確定,為解碼單元選擇適當(dāng)?shù)牟僮髂J揭蕴幚韨魅氪a塊。示例解碼器300包括控制單元302以及兩個解碼單元304和306。兩個解碼單元 304和306分別交替地處理傳入碼塊。在操作中,包含在控制單元302中的狀態(tài)機監(jiān)視接收的GPON幀的傳入碼塊,并且確定傳入碼塊318是完整碼塊還是部分碼塊。在一個實施方式中,基于接收的GPON幀的標(biāo)準(zhǔn)化結(jié)構(gòu)和GPON幀內(nèi)碼塊的位置的先驗知識,執(zhí)行傳入碼塊是完整碼塊還是部分碼塊的確定。繼而,根據(jù)該確定,控制單元302輸出模式選擇信號320以供為解碼單元304或解碼單元306選擇操作模式。
6
例如,當(dāng)設(shè)置解碼單元304以處理傳入碼塊318時,模式選擇信號310為解碼單元304選擇操作模式,該解碼單元304包括綜合癥單元308、糾錯單元310和部分碼塊緩存 328。綜合癥單元308用于為傳入碼塊318計算綜合癥值(即,生成的多項式的根)。當(dāng)模式選擇信號320指示傳入碼塊318是完整碼塊時,解碼單元304進(jìn)入針對完整碼塊的操作模式。在一個實施方式中,復(fù)用器321接收指示完整碼塊的模式選擇信號320,并且向內(nèi)部綜合癥單元322提供完整碼塊開始值324。繼而,內(nèi)部綜合癥單元322向復(fù)用器319輸出針對傳入碼塊318而計算的綜合癥值。響應(yīng)于指示完整碼塊的模式選擇信號320,復(fù)用器319 向內(nèi)部糾錯單元330提供針對傳入碼塊318而計算的綜合癥值,該內(nèi)部糾錯單元330包括在糾錯單元310中。響應(yīng)于模式選擇信號320,復(fù)用器323向內(nèi)部糾錯單元330提供完整碼塊開始值325。基于接收的針對碼塊318的綜合癥值和完整碼塊開始值325,在完整碼塊的描述情況中,當(dāng)確定碼塊318包含錯誤時,內(nèi)部糾錯單元330對其執(zhí)行糾錯。在一個實施方式中,內(nèi)部糾錯單元330向算術(shù)組件332 (諸如算術(shù)組合器)輸出針對碼塊318的糾錯結(jié)果。算術(shù)組件332附加地從緩存312接收初始輸入碼塊318的副本,并且繼而生成從解碼單元304輸出的經(jīng)糾錯的碼塊333。另一方面,在一個實施方式中,當(dāng)模式選擇信號320指示傳入碼塊318是部分碼塊時,解碼單元304進(jìn)入部分碼塊操作模式。在一個實施方式中,內(nèi)部綜合癥單元322中的碼塊解碼通過多個級進(jìn)行。對部分碼塊的解碼開始于內(nèi)部綜合癥單元322的中間處理級。復(fù)用器321向內(nèi)部綜合癥單元322提供部分碼塊開始值326。在一個實施方式中,不同于完整碼塊開始值324的部分碼塊開始值3 對應(yīng)于對某個數(shù)量的零的解碼的結(jié)果,就好像已經(jīng)利用零初始填充了碼塊318,從而合成待解碼的完整碼塊。內(nèi)部綜合癥單元322向部分碼塊緩沖3 輸出基于碼塊318而計算的綜合癥值和部分碼塊開始值326。在預(yù)定延遲之后,在一個實施方式中,該預(yù)定延遲對應(yīng)于用于解碼部分碼塊318的減少的時間,響應(yīng)于指示部分碼塊的模式選擇信號320,復(fù)用器319從部分碼塊緩存3 接收針對碼塊318而計算的綜合癥值。繼而,復(fù)用器319向內(nèi)部糾錯單元330輸出針對碼塊318而計算的綜合癥值。 響應(yīng)于模式選擇信號320,復(fù)用器323向內(nèi)部糾錯單元330提供部分碼塊開始值327。在部分碼塊的描述的情況中,基于針對碼塊318的接收的綜合癥值和部分碼塊開始值327,當(dāng)確定碼塊318包含錯誤時,內(nèi)部糾錯單元330對其執(zhí)行糾錯。在一個實施方式中,內(nèi)部糾錯單元330向算術(shù)組件332輸出針對碼塊318的糾錯結(jié)果以供生成經(jīng)糾錯的碼塊333。類似于解碼單元304,解碼單元306包括綜合癥單元314、糾錯單元316、部分碼塊緩存348和復(fù)用器349。綜合癥單元314包括復(fù)用器341和內(nèi)部綜合癥單元342。糾錯單元316包括復(fù)用器343和內(nèi)部綜合癥單元352。例如,當(dāng)設(shè)置解碼單元306以處理傳入碼塊 318時,解碼單元306的操作類似于以上關(guān)于解碼單元304所描述的那些。圖4是根據(jù)本公開的實施方式的、圖3的示例綜合癥單元308和示例糾錯單元310 的圖示。如圖4中所看到的,內(nèi)部綜合癥單元322和內(nèi)部糾錯單元330各自包括對應(yīng)于表示碼塊的多項式的項的多個處理級。根據(jù)一個實施方式,處理級的每個由硬件電路形成。取決于碼塊318是完整碼塊還是部分碼塊,內(nèi)部綜合癥單元322和內(nèi)部糾錯單元330內(nèi)的不同級用于處理傳入碼塊318。在操作中,當(dāng)確定碼塊318是完整碼塊時,例如在一個實施方式中的控制單元302 處,復(fù)用器321向內(nèi)部綜合癥單元322提供完整碼塊開始值324,內(nèi)部綜合癥單元322還接收碼塊318。在一個實施方式中,完整碼塊開始值3M是零,或另一合適的開始值。將碼塊 318輸入到從起始級334(例如,級“1”)開始的內(nèi)部綜合癥單元322的級中。使用內(nèi)部綜合癥單元322內(nèi)的所有級來計算被確定為完整碼塊的碼塊318的綜合癥值,在此向下一級傳送每個級處的處理結(jié)果。響應(yīng)于模式選擇信號320,復(fù)用器319從內(nèi)部綜合癥單元322接收碼塊318的計算出的綜合癥值,并且向內(nèi)部糾錯單元330輸出綜合癥值。內(nèi)部糾錯單元 330還從復(fù)用器323接收完整碼塊開始值325。將綜合癥值輸入到從起始級338(例如,級 “1”)開始的內(nèi)部糾錯單元330的級中。使用內(nèi)部糾錯單元330內(nèi)的所有級來執(zhí)行被確定為完整碼塊的碼塊318的糾錯,在此向下一級傳送每個級處的處理結(jié)果。另一方面,當(dāng)確定碼塊318是部分碼塊時,在一個實施方式中例如在控制單元320 處,內(nèi)部綜合癥單元322從復(fù)用器321以及部分碼塊318接收部分碼塊開始值326,該分碼塊開始值3 在一個實施方式中不同于完整碼塊開始值324。將碼塊318輸入到從中間級 336(例如,級“120”)開始的內(nèi)部綜合癥單元322的級中,然而可以根據(jù)不同標(biāo)準(zhǔn)、不同碼塊結(jié)構(gòu)等向不同級適當(dāng)?shù)靥峁┎糠执a塊318?;诖a塊318和部分碼塊開始值3 來計算針對碼塊318的綜合癥值。由于使用內(nèi)部綜合癥單元322的較少級來處理部分碼塊318, 因而部分碼塊318的計算的綜合癥值存儲在部分碼塊緩存328中,以便在針對完整碼塊計算的綜合癥值與針對部分碼塊計算的綜合癥值之間維持同步。在一個實施方式中,響應(yīng)于模式選擇信號320,復(fù)用器319從部分碼塊緩存3 選擇緩存的針對部分碼塊的綜合癥值, 或從內(nèi)部綜合癥單元322選擇針對完整碼塊的綜合癥值。當(dāng)確定碼塊318是部分碼塊時, 復(fù)用器319向內(nèi)部糾錯單元330提供針對存儲在部分碼塊緩存3 中的碼塊318的綜合癥值。將該綜合癥值輸入到從中間級340(例如,級“120”)開始的內(nèi)部糾錯單元330的級中, 然而可以根據(jù)不同標(biāo)準(zhǔn)、不同碼塊結(jié)構(gòu)等適當(dāng)?shù)叵虿煌壧峁┰摼C合癥值?;谶@些綜合癥值和從復(fù)用器323接收的部分碼塊開始值327,內(nèi)部糾錯單元330使用比針對完整碼塊更少的級來執(zhí)行針對部分碼塊318的糾錯。圖5是用于使用圖3的解碼器300來處理完整碼塊的序列的示例時序圖500。交叉參考圖3和圖5,交替地選擇解碼單元304和306來處理完整碼塊的序列。解碼單元306 的綜合癥單元314(例如,“Synd ul”)和糾錯單元316 (例如,“EC ul”)在第一流508中使用。解碼單元304的綜合癥單元308(例如,“Synd u0,,)和糾錯單元310 (例如,“EC u0,,) 在第二流510中使用。選擇解碼單元306來處理完整碼塊502。綜合癥單元314接收碼塊502并且計算針對碼塊502的綜合癥值。糾錯單元316從綜合癥單元314接收計算的綜合癥值,并且針對碼塊502執(zhí)行糾錯。當(dāng)跟隨碼塊502的完整碼塊504到達(dá)時,解碼單元306仍舊在處理碼塊502。繼而,代替地選擇解碼單元304來處理碼塊504。綜合癥單元308接收碼塊504 并且計算針對碼塊504的綜合癥值。糾錯單元310從綜合癥單元308接收計算的綜合癥值并且針對碼塊504執(zhí)行糾錯。當(dāng)跟隨碼塊504的另一完整碼塊到達(dá)時,綜合癥單元314已經(jīng)完成了對碼塊502的處理,并且開始處理碼塊506。同樣,GPON幀中的完整碼塊的序列交替地由解碼單元304和306處理。在一個實施方式中,包括在解碼單元304中的部分碼塊緩存328以及包括在解碼單元306中的部分碼塊緩存348引入延遲,從而使得部分碼塊的處理時間與完整碼塊的處理時間相同,這使得能夠?qū)Υa塊的處理進(jìn)行交織。
通常,GPON幀在GPON數(shù)據(jù)流中連續(xù)傳輸。因此,解碼器300經(jīng)常需要在接收兩個背靠背GPON幀時處理碼塊的特定序列。圖6A和圖6B示出了 600處兩個背靠背GPON幀的碼塊的示例特定序列的圖示。另一 GPON幀604跟隨GPON幀602。出現(xiàn)碼塊606的特定序列,包括三個碼塊608、610和612。碼塊608和610是GPON幀602的最后兩個塊,并且碼塊612是GPON幀604的第一碼塊。碼塊608和612是完整碼塊,每個包括255字節(jié)數(shù)據(jù), 而碼塊610是部分碼塊,僅包括120字節(jié)數(shù)據(jù)。圖7是用于使用圖3中的解碼器300來處理碼塊的特定序列的示例時序圖。交叉參考圖3和圖7,解碼器300在兩個操作模式之間切換以處理碼塊的特定序列。碼塊的第一特定序列包括碼塊702、704和706,其中碼塊704是之前的GPON幀的最后的碼塊,并且碼塊 706是當(dāng)前的GPON幀的第一碼塊。在操作中,解碼單元306的綜合癥單元314(例如,“Synd ul”)和糾錯單元316(例如,“EC ul”)在第一流中使用,而解碼單元304的綜合癥單元308(例如,“Synd uO”)和糾錯單元310(例如,“EC uO”)在第二流中使用。綜合癥單元314(例如,“Synd ul”)接收碼塊702并且計算針對碼塊702的綜合癥值。復(fù)用器319從綜合癥單元314接收針對碼塊702的綜合癥值,并且向糾錯單元316(例如,“EC ul”)提供該綜合癥值,該糾錯單元316 針對碼塊702執(zhí)行糾錯。當(dāng)跟隨碼塊702的部分碼塊704到達(dá)時,綜合癥單元308(例如, "Synd uO”)接收部分碼塊704,并且計算針對部分碼塊704的綜合癥值。計算的針對部分碼塊704的綜合癥值存儲在部分碼塊緩存328中,并且綜合癥單元308可以已經(jīng)由后續(xù)的碼塊(例如,碼塊708)使用。在預(yù)定的延遲之后,復(fù)用器319從緩存3 接收針對部分碼塊704的綜合癥值,并且向針對碼塊704執(zhí)行糾錯的糾錯單元310(例如,“EC uO”)提供該綜合癥值。當(dāng)碼塊706到達(dá)時,綜合癥單元314尚未完成對碼塊702的處理。在延遲之后,綜合癥單元314開始處理碼塊706。該延遲將影響將由綜合癥單元314和糾錯單元316處理的后續(xù)碼塊,直到碼塊的第二特定序列到達(dá)為止。另一方面,當(dāng)跟隨碼塊706的碼塊708到達(dá)時,綜合癥單元308準(zhǔn)備就緒并開始處理碼塊708而沒有任何延遲。因為碼塊708是完整碼塊,所以復(fù)用器319從綜合癥單元308接收針對碼塊708的綜合癥值,并且向糾錯單元 310提供該綜合癥值以供糾錯。對于綜合癥單元308和糾錯單元310處理后續(xù)碼塊而言不存在延遲,直到碼塊的第二特定序列到達(dá)為止。碼塊的第二特定序列在當(dāng)前GPON幀的末尾處到達(dá),并且包括碼塊710、712和714。 碼塊712是當(dāng)前的GPON幀的最后碼塊并且是部分碼塊。基于當(dāng)前的GPON幀的已知結(jié)構(gòu), 碼塊712將由綜合癥單元314(例如,“Synd ul”)和糾錯單元316 (例如,“EC ul”)處理。 然而,當(dāng)碼塊712到達(dá)時,綜合癥單元314仍舊正在處理之前的碼塊716。在延長的延遲之后,綜合癥單元314開始處理碼塊712。當(dāng)跟隨碼塊712的碼塊714到達(dá)時,綜合癥單元308仍舊沒有完成對碼塊710的處理。在延遲之后,綜合癥單元308開始處理碼塊714。該延遲將影響由綜合癥單元308和糾錯單元310處理的后續(xù)碼塊,直到碼塊的下一特定序列到達(dá)為止。另一方面,當(dāng)跟隨碼塊 714的碼塊718到達(dá)時,綜合癥單元314準(zhǔn)備好并處理碼塊718而沒有任何延遲。針對處理后續(xù)碼塊,綜合癥單元314和糾錯單元316沒有遭受延遲,直到碼塊的下一特定序列到達(dá)為止。
類似地,碼塊的下一特定序列引起針對綜合癥單元314和糾錯單元316的新延遲, 而去除了針對綜合癥單元308和310的現(xiàn)有延遲。因此,解碼器300將由背靠背GPON幀的碼塊的特定序列引起的延遲限制到某個程度,從而使得延遲對于解碼器300而言不會變的過長以至于不能正確工作。圖8是根據(jù)本公開的實施方式的、用于針對數(shù)據(jù)流中的幀來執(zhí)行前向糾錯的示例流程圖。在802處,接收包括多個碼塊的幀。在804處,確定幀內(nèi)的碼塊是否是完整碼塊。 如果碼塊是完整碼塊,則在806處對該完整碼塊進(jìn)行解碼。如果碼塊是部分碼塊,則在808 處,基于碼塊和附加的部分解碼結(jié)果對該碼塊進(jìn)行解碼。附加的部分解碼結(jié)果對應(yīng)于對某個數(shù)量的零進(jìn)行解碼的結(jié)果,好像已經(jīng)將這些零填充到傳入碼塊中以形成待解碼的中間完整碼塊。本撰寫的說明書使用示例來公開本發(fā)明、包括最佳模式并且還使得本領(lǐng)域技術(shù)人員能夠制造并使用本發(fā)明。本發(fā)明的可專利的范圍可以包括本領(lǐng)域技術(shù)人員想到的其他示例。
權(quán)利要求
1.一種用于針對數(shù)據(jù)流中的幀執(zhí)行前向糾錯的解碼器,所述解碼器包括狀態(tài)機,被配置為確定由所述解碼器接收的所述幀內(nèi)的碼塊是完整碼塊還是部分碼塊,所述幀包括多個碼塊;以及解碼單元,被配置為接收所述碼塊,并且當(dāng)所述碼塊是部分碼塊時,基于對所述部分碼塊的解碼和作為對所述解碼單元的輸入的附加部分解碼結(jié)果,來生成輸出。
2.根據(jù)權(quán)利要求1所述的解碼器,其中所述解碼單元還被配置為當(dāng)所述碼塊是完整碼塊時,基于對所述完整碼塊的解碼來生成輸出。
3.根據(jù)權(quán)利要求1所述的解碼器,其中所述解碼單元包括多個級,每級對應(yīng)于表示所述碼塊的多項式的項。
4.根據(jù)權(quán)利要求3所述的解碼器,其中當(dāng)確定所述碼塊是完整碼塊時,所述解碼單元被配置為從所述多個級的起始級開始向所述多個級輸入所述碼塊。
5.根據(jù)權(quán)利要求3所述的解碼器,其中當(dāng)確定所述碼塊是部分碼塊時,所述解碼單元被配置為從所述多個級的中間級開始向所述多個級輸入所述碼塊,基于所述碼塊的預(yù)定結(jié)構(gòu)來確定所述中間級。
6.根據(jù)權(quán)利要求1所述的解碼器,其中所述解碼單元包括綜合癥組件,被配置為接收所述碼塊,并且生成所述碼塊的綜合癥值,所述綜合癥組件包括第一多個級,所述第一多個級的每個對應(yīng)于表示所述碼塊的多項式的項;以及糾錯組件,被配置為接收所述綜合癥值,以及基于所述綜合癥值來確定所述碼塊是否包含錯誤,所述糾錯組件包括第二多個級,所述第二多個級的每個對應(yīng)于表示所述碼塊的所述多項式的項。
7.根據(jù)權(quán)利要求6所述的解碼器,其中當(dāng)確定所述碼塊是完整碼塊時,所述綜合癥組件被配置為從所述第一多個級的起始級開始向所述第一多個級輸入所述碼塊。
8.根據(jù)權(quán)利要求6所述的解碼器,其中當(dāng)確定所述碼塊是部分碼塊時,所述綜合癥組件被配置為從所述第一多個級的中間級開始向所述第一多個級輸入所述碼塊,基于所述碼塊的預(yù)定結(jié)構(gòu)確定所述中間級。
9.根據(jù)權(quán)利要求6所述的解碼器,其中當(dāng)確定所述碼塊是完整碼塊時,所述糾錯組件被配置為從所述第二多個級的起始級開始向所述第二多個級輸入所述碼塊的所述綜合癥值。
10.根據(jù)權(quán)利要求6所述的解碼器,其中當(dāng)確定所述碼塊是部分碼塊時,所述糾錯組件被配置為從所述第二多個級的中間級開始向所述第二多個級輸入所述碼塊的所述綜合癥值,基于所述碼塊的預(yù)定結(jié)構(gòu)確定所述中間級。
11.根據(jù)權(quán)利要求6所述的解碼器,其中所述解碼單元還包括緩存,被配置為當(dāng)確定所述碼塊是部分碼塊時,從所述綜合癥組件接收所述綜合癥值。
12.根據(jù)權(quán)利要求11所述的解碼器,其中所述糾錯組件被配置為當(dāng)確定所述碼塊是完整碼塊時,直接從所述綜合癥組件接收所述綜合癥值;以及其中所述糾錯組件被配置為當(dāng)確定所述碼塊是部分碼塊時,在預(yù)定延遲后從所述緩存接收所述綜合癥值。
13.根據(jù)權(quán)利要求1所述的解碼器,其中所述狀態(tài)機還被配置為至少部分地基于所述幀的預(yù)定結(jié)構(gòu)和所述幀內(nèi)的所述碼塊的位置,來確定所述碼塊是完整碼塊還是部分碼塊。
14.根據(jù)權(quán)利要求13所述的解碼器,其中所述狀態(tài)機還被配置為至少部分地基于包含在所述碼塊中的用于傳輸?shù)脑紨?shù)據(jù)的字節(jié)數(shù)量,來確定所述碼塊是完整碼塊還是部分碼塊。
15.根據(jù)權(quán)利要求14所述的解碼器,其中當(dāng)所述碼塊包含用于傳輸?shù)乃鲈紨?shù)據(jù)的 239字節(jié)時,確定所述碼塊是完整碼塊;或當(dāng)所述碼塊包含用于傳輸?shù)乃鲈紨?shù)據(jù)的104 字節(jié)時,確定所述碼塊是部分碼塊。
16.一種用于針對數(shù)據(jù)流的幀執(zhí)行前向糾錯的方法,所述方法包括 接收包括多個碼塊的所述幀;使用狀態(tài)機針對所述多個碼塊的每個來確定碼塊是完整碼塊還是部分碼塊;以及基于所述確定在解碼器中對所述碼塊進(jìn)行解碼,其中當(dāng)確定所述碼塊是部分碼塊時, 基于對所述部分碼塊的解碼和作為對所述解碼器的輸入的附加部分解碼結(jié)果,來生成輸出ο
17.根據(jù)權(quán)利要求16所述的方法,其中當(dāng)確定所述碼塊是完整碼塊時,基于對整個碼塊的解碼來生成輸出。
18.根據(jù)權(quán)利要求16所述的方法,其中基于所述確定在所述解碼器中對所述碼塊進(jìn)行解碼包括生成針對所述碼塊的綜合癥值;以及基于生成的所述綜合癥值來執(zhí)行針對所述碼塊的糾錯。
19.根據(jù)權(quán)利要求18所述的方法,其中當(dāng)確定所述碼塊是部分碼塊時,在預(yù)定延遲后執(zhí)行針對所述碼塊的所述糾錯。
20.根據(jù)權(quán)利要求16所述的方法,其中對所述碼塊是完整碼塊還是部分碼塊的所述確定至少部分地基于所述幀的預(yù)定結(jié)構(gòu)和所述幀內(nèi)的所述碼塊的位置。
全文摘要
根據(jù)在此描述的教示,提供用于執(zhí)行前向糾錯的系統(tǒng)和方法。針對數(shù)據(jù)流中的幀執(zhí)行前向糾錯的解碼器包括狀態(tài)機,該狀態(tài)機被配置為確定由解碼器接收幀內(nèi)的碼塊是完整碼塊還是部分碼塊,幀包括多個碼塊。解碼單元被配置為接收碼塊,并且當(dāng)碼塊是部分碼塊時,基于對該部分碼塊的解碼和向解碼單元輸入的附加部分解碼結(jié)果,來生成輸出。
文檔編號H04L1/00GK102377521SQ20111022582
公開日2012年3月14日 申請日期2011年8月4日 優(yōu)先權(quán)日2010年8月4日
發(fā)明者D·梅爾茲, E·伊曾伯格, E·艾米特, O·沙菲瑞爾 申請人:馬維爾以色列(M.I.S.L.)有限公司