TW202333459A - 編碼方法、解碼方法、裝置、設備、系統及可讀儲存介質 - Google Patents
編碼方法、解碼方法、裝置、設備、系統及可讀儲存介質 Download PDFInfo
- Publication number
- TW202333459A TW202333459A TW111145792A TW111145792A TW202333459A TW 202333459 A TW202333459 A TW 202333459A TW 111145792 A TW111145792 A TW 111145792A TW 111145792 A TW111145792 A TW 111145792A TW 202333459 A TW202333459 A TW 202333459A
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- code
- blocks
- code stream
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 185
- 238000004891 communication Methods 0.000 claims abstract description 25
- 230000015654 memory Effects 0.000 claims description 86
- 238000012545 processing Methods 0.000 claims description 70
- 238000001514 detection method Methods 0.000 claims description 68
- 238000012937 correction Methods 0.000 claims description 61
- 238000004590 computer program Methods 0.000 claims description 21
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 31
- 230000005540 biological transmission Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 16
- 230000003287 optical effect Effects 0.000 description 11
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 102100027157 Butyrophilin subfamily 2 member A1 Human genes 0.000 description 1
- 102100027156 Butyrophilin subfamily 2 member A2 Human genes 0.000 description 1
- 102100027154 Butyrophilin subfamily 3 member A3 Human genes 0.000 description 1
- 101000984926 Homo sapiens Butyrophilin subfamily 2 member A1 Proteins 0.000 description 1
- 101000984925 Homo sapiens Butyrophilin subfamily 2 member A2 Proteins 0.000 description 1
- 101000984916 Homo sapiens Butyrophilin subfamily 3 member A3 Proteins 0.000 description 1
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 1
- 101000666405 Homo sapiens General transcription factor IIH subunit 1 Proteins 0.000 description 1
- 101000655398 Homo sapiens General transcription factor IIH subunit 2 Proteins 0.000 description 1
- 101000655391 Homo sapiens General transcription factor IIH subunit 3 Proteins 0.000 description 1
- 101000933542 Homo sapiens Transcription factor BTF3 Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
本申請公開了一種編碼方法、解碼方法、裝置、設備、系統及可讀儲存介質,屬於通信技術領域。編碼方法包括:獲取包括控制塊和資料塊的2
n組碼流塊,n為大於1的整數;對2
n組碼流塊進行第一編碼得到目標碼塊,目標碼塊包括基於2
n組碼流塊的控制塊確定的類型和基於2
n組碼流塊的控制塊和資料塊確定的資料單元。解碼方法包括:獲取目標碼塊,根據目標碼塊的類型和資料單元對目標碼塊進行第一解碼得到2
n組碼流塊,各組碼流塊包括基於類型和資料單元得到的控制塊和資料塊。
Description
本申請涉及通信技術領域,尤其涉及一種編碼方法、解碼方法、裝置、設備、系統及可讀儲存介質。
隨著通信技術的發展,通過乙太網進行報文傳輸的方式也越來越完善。在傳輸報文的過程中,來自媒體存取控制(media access control,MAC)層的報文按照固定長度被切分成塊,並行進入介質無關介面(media independent interface,MII)。例如,報文被切分成塊後並行進入800吉比特(gigabit,G)MII,該800GMII表示傳輸MAC速率為800吉比特/秒(gigabit per second,Gb/s)的MII。通過MII傳輸至物理編碼子層(physical coding sublayer,PCS)。PCS從MII接收到的碼流塊包括資料塊(transmit data,TXD)和控制塊(transmit control,TXC)。其中,TXC和TXD是由來自MAC層的報文流內容經過適配子層(reconciliation sublayer,RS)處理得到的。TXC是控制字,用於標識TXD中對應位元組的內容是控制信號還是資料信號,其中控制信號包括報文的開始、終結、錯誤、空閒等資訊。PCS根據TXC/TXD內容進行編碼,減少開銷,同時可以提供必需的同步、保護功能。
相關技術中,PCS對來自MII的各組碼流塊進行64比特(bit,B)/66B編碼,編碼得到66bit碼塊,該66bit碼塊為資料碼塊或控制碼塊,若為控制碼塊,該66bit碼塊包括具備4bit漢明距離保護的欄位。當採用高速物理鏈路進行資料傳輸時,將每四個66bit碼塊轉碼為一個長度為257bit的256B/257B編碼的碼塊,對257bit碼塊進行前向糾錯(forward error correction,FEC)編碼,傳輸FEC編碼得到的FEC碼字。
當存在不可糾正的FEC碼字時,由於該FEC碼字中誤碼的數量較多且位置不固定,66bit碼塊中具備漢明距離保護的欄位無法保證誤碼的可靠識別;又由於可以通過FEC標錯來實現誤碼的可靠識別,因此誤碼識別無需通過66bit碼塊中具備漢明距離保護的欄位實現。在此基礎上,又由於PCS中絕大多數處理是基於257bit碼塊進行的,因此64B/66B編碼過程不再必要。若保留64B/66B編碼過程,隨之而來的轉碼過程將帶來不必要的時延、功耗和晶片面積佔用。
本申請提出一種編碼方法、解碼方法、裝置、設備、系統及可讀儲存介質,用於提高編解碼效率。
第一方面,提供了一種編碼方法,所述方法包括:獲取2
n組碼流塊,任一組碼流塊包括控制塊和資料塊,所述n為大於1的整數;對所述2
n組碼流塊進行第一編碼,得到目標碼塊,所述目標碼塊包括基於所述2
n組碼流塊的控制塊確定的類型和基於所述2
n組碼流塊的控制塊和資料塊確定的資料單元。
由於對包括控制塊和資料塊的2
n組碼流塊進行第一編碼能夠得到目標碼塊,而不必對2
n組碼流塊中的每組碼流塊進行64B/66B編碼得到2
n個66比特碼塊,再對2
n個66比特碼塊進行轉碼得到目標碼塊,編碼效率得以提高,編碼過程所帶來的時延、功耗和晶片面積佔用都得以降低。
在一種可能的實現方式中,所述類型用於指示所述目標碼塊為資料碼塊;所述資料單元基於所述2
n組碼流塊的順序對所述2
n組碼流塊的資料塊進行所述第一編碼得到。
在一種可能的實現方式中,所述類型用於指示所述目標碼塊為控制碼塊;所述資料單元包括類型指示和碼塊內容,所述碼塊內容基於所述2
n組碼流塊的控制塊和資料塊確定的順序對所述2
n組碼流塊的資料塊進行所述第一編碼得到,所述類型指示基於所述2
n組碼流塊的控制塊得到,所述類型指示用於指示各組碼流塊的類型。
在一種可能的實現方式中,所述目標碼塊為錯誤碼塊,所述錯誤碼塊中包括用於標識錯誤的資料。由於本申請的編碼方法能夠對不同類型的碼流塊進行第一編碼以得到目標碼塊,該方法的適用性較廣。
在一種可能的實現方式中,所述目標碼塊基於錯誤檢測結果對所述2
n組碼流塊進行處理得到,所述錯誤檢測結果基於所述2
n組碼流塊的控制塊和資料塊得到。通過對存在錯誤的碼流塊進行處理,再得到目標碼塊,使得後續進行資料傳輸時存在錯誤的資料能夠與正確的資料區分開來,保證資料的可靠性。
在一種可能的實現方式中,所述錯誤檢測結果包括所述2
n組碼流塊的內容順序錯誤或內容錯誤,所述目標碼塊基於所述2
n組碼流塊中內容順序正確且內容正確的碼流塊以及錯誤塊進行所述第一編碼得到,所述錯誤塊基於所述2
n組碼流塊中內容順序錯誤或內容錯誤的碼流塊得到。
在一種可能的實現方式中,所述控制塊包括m比特,所述資料塊包括8m比特,所述m為正整數。
在一種可能的實現方式中,所述n的取值為2,所述m的取值為8,所述目標碼塊為257比特。
在一種可能的實現方式中,所述2
n組碼流塊均來自介質無關介面MII。
在一種可能的實現方式中,所述得到目標碼塊之後,還包括:按照FEC碼型對所述目標碼塊進行第二編碼,得到第一資料;發送所述第一資料。通過按照FEC碼型對目標碼塊進行第二編碼得到第一資料,使得接收端能夠對接收的第一資料進行糾錯,保證資料傳輸的準確性。
第二方面,提供了一種解碼方法,所述方法包括:獲取目標碼塊,所述目標碼塊包括類型和資料單元;根據所述目標碼塊的類型和資料單元,對所述目標碼塊進行第一解碼,得到2
n組碼流塊,任一組碼流塊包括基於所述類型和所述資料單元得到的控制塊和資料塊,所述n為大於1的整數。
由於對目標碼塊進行第一解碼能夠得到包括控制塊和資料塊的2
n組碼流塊,而不必對目標碼塊進行轉碼得到2
n個66比特碼塊,再對2
n個66比特碼塊進行解碼得到2
n組碼流塊,解碼效率得以提高,解碼過程所帶來的時延、功耗和晶片面積佔用都得以降低。
在一種可能的實現方式中,所述類型用於指示所述目標碼塊為資料碼塊;所述2
n組碼流塊中的第i組碼流塊包括的資料塊是基於對所述資料單元中與所述第i組碼流塊對應的8m長度的內容進行所述第一解碼得到的,所述m為正整數,所述i為大於等於1且小於等於2
n的整數或者所述i為大於等於0且小於等於2
n-1的整數。
在一種可能的實現方式中,所述類型用於指示所述目標碼塊為控制碼塊,所述資料單元包括類型指示和碼塊內容,所述類型指示包括2
n個比特,所述2
n個比特中的1個比特用於指示所述2
n組碼流塊中與所述比特對應的一組碼流塊的類型,所述碼塊內容包括2
n個比特組;
所述2n組碼流塊中的第i組碼流塊包括的控制塊是基於所述類型、所述類型指示中與所述第i組碼流塊對應的比特和所述碼塊內容中與所述第i組碼流塊對應的比特組得到的,所述i為大於等於1且小於等於2
n的整數或者所述i為大於等於0且小於等於2
n-1的整數;
所述2
n組碼流塊中的第i組碼流塊包括的資料塊是基於所述類型指示中與所述第i組碼流塊對應的比特對所述碼塊內容中與所述第i組碼流塊對應的比特組進行所述第一解碼得到的。
在一種可能的實現方式中,所述2
n個比特組包括第一比特組和2
n-1個第二比特組,所述第一比特組包括的比特數量和所述第二比特組包括的比特數量不相同。
在一種可能的實現方式中,所述資料單元包括類型指示,所述類型和所述類型指示用於指示所述目標碼塊為錯誤碼塊;所述2
n組碼流塊中每組碼流塊包括的控制塊為第一值,所述2
n組碼流塊中每組碼流塊包括的資料塊為第二值,所述第一值和所述第二值用於指示所述碼流塊為錯誤碼流塊。
由於本申請的解碼方法能夠對不同類型的目標碼塊進行第一解碼以得到2
n組碼流塊,該方法的適用性較廣。
在一種可能的實現方式中,所述獲取目標碼塊,包括:接收第二資料,所述第二資料是基於採用前向糾錯FEC碼型編碼的第一資料獲得的;對所述第二資料進行第二解碼獲取所述目標碼塊,所述第二解碼為糾錯處理。
在一種可能的實現方式中,所述目標碼塊是對所述第二資料進行糾錯但未成功糾錯所獲得的錯誤碼塊。由於目標碼塊是對第二資料進行糾錯但未能成功糾錯,進而對FEC碼字中的碼塊進行標錯後所獲得的碼塊,接收端能夠確定基於目標碼塊得到的資料為錯誤資料,保證資料的準確性。
在一種可能的實現方式中,所述獲取目標碼塊,包括:接收第二資料,所述第二資料是基於採用前向糾錯FEC碼型編碼的第一資料獲得的;對所述第二資料進行第二解碼獲取所述目標碼塊,所述第二解碼為檢錯但不糾錯處理。
在一種可能的實現方式中,所述目標碼塊是從所述第二資料檢出錯誤但不糾錯所獲得的錯誤碼塊。
針對本申請提供的解碼方法,第二解碼操作可以是對碼字進行糾錯,或者僅檢錯但不糾錯。在第二解碼過程中對碼字進行糾錯的情況下,當判定無法對當前碼字進行糾錯時(例如錯誤個數超出糾錯能力),需要對該碼字中所有的碼塊進行標錯;或者當在第二解碼過程中對碼字只進行檢錯但不糾錯的情況下,對於檢出錯誤的碼字,需要對該碼字中所有的碼塊進行標錯。
在一種可能的實現方式中,所述2
n組碼流塊根據錯誤檢測結果以及所述目標碼塊的類型和資料單元對所述目標碼塊進行第一解碼得到,所述錯誤檢測結果基於所述目標碼塊的類型和資料單元得到。通過對存在錯誤的目標碼塊進行處理,使得接收端能夠區分錯誤資料和正確資料,保證資料的可靠性。
在一種可能的實現方式中,所述錯誤檢測結果包括所述目標碼塊的內容順序錯誤或內容錯誤,所述2
n組碼流塊根據第二碼塊的類型和資料單元對所述第二碼塊進行第一解碼得到,所述第二碼塊是對所述目標碼塊進行轉換得到的且與所述目標碼塊比特數相同的碼塊。
在一種可能的實現方式中,所述錯誤檢測結果包括所述目標碼塊的內容順序錯誤或內容錯誤,所述2
n組碼流塊基於對2
n組第一碼流塊進行轉換得到,所述2
n組第一碼流塊基於所述目標碼塊的類型和資料單元對所述目標碼塊進行第一解碼得到。
在一種可能的實現方式中,所述控制塊包括m比特,所述資料塊包括8m比特,所述m為正整數。
在一種可能的實現方式中,所述n的取值為2,所述m的取值為8,所述目標碼塊為257比特。
在一種可能的實現方式中,所述2
n組碼流塊均為介質無關介面MII格式。
第三方面,提供了一種編碼裝置,所述裝置包括:
獲取模組,用於獲取2
n組碼流塊,任一組碼流塊包括控制塊和資料塊,所述n為大於1的整數;
第一編碼模組,用於對所述2
n組碼流塊進行第一編碼,得到目標碼塊,所述目標碼塊包括基於所述2
n組碼流塊的控制塊確定的類型和基於所述2
n組碼流塊的控制塊和資料塊確定的資料單元。
在一種可能的實現方式中,所述類型用於指示所述目標碼塊為資料碼塊;所述資料單元基於所述2
n組碼流塊的控制塊和資料塊確定的順序對所述2
n組碼流塊的資料塊進行所述第一編碼得到。
在一種可能的實現方式中,所述類型用於指示所述目標碼塊為控制碼塊;所述資料單元包括類型指示和碼塊內容,所述碼塊內容基於所述2
n組碼流塊的控制塊和資料塊確定的順序對所述2
n組碼流塊的資料塊進行所述第一編碼得到,所述類型指示基於所述2
n組碼流塊的控制塊得到,所述類型指示用於指示各組碼流塊的類型。
在一種可能的實現方式中,所述目標碼塊為錯誤碼塊,所述錯誤碼塊中包括用於標識錯誤的資料。
在一種可能的實現方式中,所述目標碼塊基於錯誤檢測結果對所述2
n組碼流塊進行處理得到,所述錯誤檢測結果基於所述2
n組碼流塊的控制塊和資料塊得到。
在一種可能的實現方式中,所述錯誤檢測結果包括所述2
n組碼流塊的內容順序錯誤或內容錯誤,所述目標碼塊基於所述2
n組碼流塊中內容順序正確且內容正確的碼流塊以及錯誤塊進行所述第一編碼得到,所述錯誤塊基於所述2
n組碼流塊中內容順序錯誤或內容錯誤的碼流塊得到。
在一種可能的實現方式中,所述控制塊包括m比特,所述資料塊包括8m比特,所述m為正整數。
在一種可能的實現方式中,所述n的取值為2,所述m的取值為8,所述目標碼塊為257比特。
在一種可能的實現方式中,所述2
n組碼流塊均來自介質無關介面MII。
在一種可能的實現方式中,該裝置還包括:
第二編碼模組,用於按照前向糾錯FEC碼型對所述目標碼塊進行第二編碼,得到第一資料;發送模組,用於發送所述第一資料。
第四方面,提供了一種解碼裝置,所述裝置包括:
獲取模組,用於獲取目標碼塊,所述目標碼塊包括類型和資料單元;
解碼模組,用於根據所述目標碼塊的類型和資料單元,對所述目標碼塊進行第一解碼,得到2
n組碼流塊,任一組碼流塊包括基於所述類型和所述資料單元得到的控制塊和資料塊,所述n為大於1的整數。
在一種可能的實現方式中,所述類型用於指示所述目標碼塊為資料碼塊;所述2
n組碼流塊中的第i組碼流塊包括的資料塊是基於對所述資料單元中與所述第i組碼流塊對應的8m長度的內容進行所述第一解碼得到的,所述m為正整數,所述i為大於等於1且小於等於2
n的整數或者所述i為大於等於0且小於等於2
n-1的整數。
在一種可能的實現方式中,所述類型用於指示所述目標碼塊為控制碼塊;所述資料單元包括類型指示和碼塊內容,所述類型指示包括2
n個比特,所述2
n個比特中的1個比特用於指示所述2
n組碼流塊中與所述比特對應的一組碼流塊的類型,所述碼塊內容包括2
n個比特組;所述2
n組碼流塊中的第i組碼流塊包括的控制塊是基於所述類型、所述類型指示中與所述第i組碼流塊對應的比特和所述碼塊內容中與所述第i組碼流塊對應的比特組得到的,所述i為大於等於1且小於等於2
n的整數或者所述i為大於等於0且小於等於2
n-1的整數;所述2
n組碼流塊中的第i組碼流塊包括的資料塊是基於所述類型指示中與所述第i組碼流塊對應的比特對所述碼塊內容中與所述第i組碼流塊對應的比特組進行所述第一解碼得到的。
在一種可能的實現方式中,所述2
n個比特組包括第一比特組和2
n-1個第二比特組,所述第一比特組包括的比特數量和所述第二比特組包括的比特數量不相同。
在一種可能的實現方式中,所述資料單元包括類型指示,所述類型和所述類型指示用於指示所述目標碼塊為錯誤碼塊;所述2
n組碼流塊中每組碼流塊包括的控制塊為第一值,所述2
n組碼流塊中每組碼流塊包括的資料塊為第二值,所述第一值和所述第二值用於指示所述碼流塊為錯誤碼流塊。
在一種可能的實現方式中,所述獲取模組,用於接收第二資料,所述第二資料是基於採用前向糾錯FEC碼型編碼的第一資料獲得的;對所述第二資料進行第二解碼獲取所述目標碼塊,所述第二解碼為糾錯處理。
在一種可能的實現方式中,所述目標碼塊是對所述第二資料進行糾錯但未成功糾錯所獲得的碼塊。
在一種可能的實現方式中,所述獲取模組,用於接收第二資料,所述第二資料是基於採用前向糾錯FEC碼型編碼的第一資料獲得的;對所述第二資料進行第二解碼獲取所述目標碼塊,所述第二解碼為檢錯但不糾錯處理。
在一種可能的實現方式中,所述目標碼塊是從所述第二資料檢出錯誤但不糾錯所獲得的錯誤碼塊。
在一種可能的實現方式中,所述2
n組碼流塊根據錯誤檢測結果以及所述目標碼塊的類型和資料單元對所述目標碼塊進行所述第一解碼得到,所述錯誤檢測結果基於所述目標碼塊的類型和資料單元得到。
在一種可能的實現方式中,所述錯誤檢測結果包括所述目標碼塊的內容順序錯誤或內容錯誤,所述2
n組碼流塊根據第二碼塊的類型和資料單元對所述第二碼塊進行所述第一解碼得到,所述第二碼塊是對所述目標碼塊進行轉換得到的且與所述目標碼塊比特數相同的碼塊。
在一種可能的實現方式中,所述錯誤檢測結果包括所述目標碼塊的內容順序錯誤或內容錯誤,所述2
n組碼流塊基於對2
n組第一碼流塊進行轉換得到,所述2
n組第一碼流塊基於所述目標碼塊的類型和資料單元對所述目標碼塊進行所述第一解碼得到。
在一種可能的實現方式中,所述控制塊包括m比特,所述資料塊包括8m比特,所述m為正整數。
在一種可能的實現方式中,所述n的取值為2,所述m的取值為8,所述目標碼塊為257比特。
在一種可能的實現方式中,所述2
n組碼流塊均為介質無關介面MII格式。
第五方面,提供了一種網路設備,包括處理器,處理器與記憶體耦合,記憶體中儲存有至少一條程式指令或代碼,至少一條程式指令或代碼由處理器載入並執行,以使網路設備實現第一方面中任一的編碼方法,或者實現第二方面中任一的解碼方法。
第六方面,提供了一種電腦可讀儲存介質,儲存介質中儲存有至少一條程式指令或代碼,程式指令或代碼由處理器載入並執行時以使電腦實現第一方面中任一的編碼方法,或者實現第二方面中任一的解碼方法。
第七方面,提供了一種通信系統,所述系統包括第一網路設備和第二網路設備,所述第一網路設備用於執行第一方面中任一的編碼方法,所述第二網路設備用於執行第二方面中任一的解碼方法。
第八方面,提供了另一種通信裝置,該裝置包括:收發器、記憶體和處理器。其中,該收發器、該記憶體和該處理器通過內部連接通路互相通信,該記憶體用於儲存指令,該處理器用於執行該記憶體儲存的指令,以控制收發器接收信號,並控制收發器發送信號,並且當該處理器執行該記憶體儲存的指令時,使得該處理器執行第一方面中任一的編碼方法,或者執行第二方面中任一的解碼方法。
示例性地,所述處理器為一個或多個,所述記憶體為一個或多個。
示例性地,所述記憶體可以與所述處理器集成在一起,或者所述記憶體與處理器分離設置。
在具體實現過程中,記憶體可以為非暫態性(non-transitory)記憶體,例如唯讀記憶體(read only memory,ROM),其可以與處理器集成在同一塊晶片上,也可以分別設置在不同的晶片上,本申請對記憶體的類型以及記憶體與處理器的設置方式不做限定。
第九方面,提供了一種電腦程式產品,所述電腦程式產品包括:電腦程式代碼,當所述電腦程式代碼被電腦運行時,使得所述電腦執行第一方面中任一的編碼方法,或者執行第二方面中任一的解碼方法。
第十方面,提供了一種晶片,包括處理器,用於從記憶體中調用並運行所述記憶體中儲存的指令,使得安裝有所述晶片的通信設備執行第一方面中任一的編碼方法,或者執行第二方面中任一的解碼方法。
第十一方面,提供另一種晶片,包括:輸入介面、輸出介面、處理器和記憶體,所述輸入介面、輸出介面、所述處理器以及所述記憶體之間通過內部連接通路相連,所述處理器用於執行所述記憶體中的代碼,當所述代碼被執行時,所述處理器用於執行第一方面中任一的編碼方法,或者執行第二方面中任一的解碼方法。
本申請的實施方式部分使用的術語僅用於對本申請的實施例進行解釋,而非旨在限定本申請。下面結合附圖,對本申請的實施例進行描述。
乙太網作為一種局域網技術,應用範圍越來越廣。100吉比特乙太網(gigabit ethernet,GE)以來,採用單通道25Gb/s的傳輸速率進行資料傳輸。為了能夠糾正接收的資料中的誤碼,實體層引入了FEC編碼,進而傳輸編碼得到的FEC碼字。例如採用100G通道進行資料傳輸時,發送端可以採用裡德-所羅門(Reed-Solomon,RS)(528,514)對原始資料進行FEC編碼,編碼得到的一個RS碼字塊包括5140比特的有效載荷和140比特的校驗碼。由於校驗碼的存在,對於在相同時間內傳輸相同有效載荷所需要的傳輸速率而言,傳輸FEC碼字所需的傳輸速率高於傳輸原始資料所需的傳輸速率。
為了降低傳輸FEC碼字所需的傳輸速率,乙太網標準上採用了轉碼,以通過降低FEC編碼前的碼塊的開銷來實現降低傳輸FEC碼字所需的傳輸速率。例如,將每四個64B/66B編碼的碼塊轉碼為一個256B/257B編碼的碼塊。由於一個257比特碼塊的開銷低於四個66比特碼塊的開銷,從而傳輸基於257比特碼塊得到的FEC碼字所需的傳輸速率相對較低。在採用100G通道進行資料傳輸時,傳輸基於轉碼後的碼塊得到的FEC碼字所需的傳輸速率為103.125Gb/s,該傳輸速率與傳輸未進行FEC編碼的66比特碼塊所需的傳輸速率相同。
接收端在獲取到FEC碼字之後,可以對FEC碼字進行糾錯。由於誤碼的識別可以通過FEC標錯來實現,且PCS中絕大多數處理是基於257比特碼塊進行的,因此,64B/66B編碼過程和相應的轉碼過程將產生不必要的時延、功耗和晶片面積佔用。
對此,本申請實施例提供了一種資料傳輸方法,以解決上述問題。在本申請實施例中,對包括控制塊和資料塊的2
n(n為大於1的整數)組碼流塊進行第一編碼得到目標碼塊,而不必對2
n組碼流塊中的每組碼流塊進行64B/66B編碼,再對2
n個66比特碼塊進行轉碼得到目標碼塊。由此,編碼效率得以提高,編碼過程所帶來的時延、功耗和晶片面積佔用都得以降低。
本申請實施例提供的方法在對目標碼塊進行第一解碼時,可直接對目標碼塊進行第一解碼得到包括控制塊和資料塊的2
n組碼流塊,而無需對目標碼塊進行轉碼得到2
n個66比特碼塊,再對2
n個66比特碼塊進行解碼得到2
n組碼流塊。由此,解碼效率得以提高,解碼過程所帶來的時延、功耗和晶片面積佔用都得以降低。
本申請實施例提供的編碼方法和解碼方法可適用於當前的乙太介面或者其他需要傳輸資料的場景下。以圖1所示的實施場景為例,該實施場景包括多個晶片,各個晶片之間能夠進行資訊的交互,實現資料傳輸。示例性地,第一網路設備101中設置有晶片102,第二網路設備103中設置有晶片104,晶片102和晶片104均支援FEC編碼和FEC解碼,第一網路設備101和第二網路設備103之間的通道105能夠傳輸FEC編碼的資料。則晶片102可以對2
n組碼流塊進行第一編碼得到目標碼塊,對目標碼塊按照第一FEC碼型進行第二編碼得到第一資料,並通過通道105將第一資料發送給晶片104。示例性地,第一資料在通道105中傳輸時可能會出現誤碼,將接收到的資料稱為第二資料。晶片104在接收到第二資料後,可以採用第一FEC碼型對第二資料進行第二解碼得到目標碼塊,對目標碼塊進行第一解碼得到2
n組碼流塊。其中,n為大於1的整數,第一FEC碼型包括但不限於RS碼、博斯-喬赫裡-霍克文黑姆(Bose-Chaudhuri-Hocquenghem,BCH)碼、漢明碼(Hamming code)、擴展BCH碼(extended-BCH code)、擴展漢明碼(extended-Hamming code)、法爾(fire)碼、渦輪(turbo)碼、渦輪乘積碼(turbo product code,TPC)、階梯(staircase)碼以及低密度同位(low-density parity-check,LDPC)碼中的任一種或者多種的級聯組合。
可以理解的是,如圖1所示的實施場景可以包括多個網路設備,各個網路設備可以包括至少一個晶片,圖1中僅以兩個網路設備,各個網路設備包括一個晶片為例進行說明。
結合圖1所示的實施場景,本申請實施例提供的編碼方法如圖2所示。示例性地,本申請實施例提供的編碼方法由圖1中的晶片102執行,該方法包括但不限於步驟201和步驟202。
步驟201,獲取2
n組碼流塊,任一組碼流塊包括控制塊和資料塊,n為大於1的整數。
在一種可能的實現方式中,2
n組碼流塊均來自MII。關於基於MII獲取2
n組碼流塊的方式,本申請實施例對此不加以限定。例如,MII可以採用電氣與電子工程師協會(the Institute of Electrical and Electronics Engineers,IEEE)802.3標準,比如IEEE802.3-2018以及其他版本的IEEE802.3標準定義的MII,獲取2
n組碼流塊。示例性地,n的取值為2,也即獲取四組碼流塊。
示例性地,對於2
n組碼流塊中的任一組碼流塊,該任一組碼流塊的控制塊包括m比特,該任一組碼流塊的資料塊包括8m比特,m為正整數。其中,8m表示m的8倍,也可表示為8*m。示例性地,m的取值為8,也即對於任一組碼流塊而言,該任一組碼流塊的控制塊包括8比特,該任一組碼流塊的資料塊包括64比特。在一種可能的實現方式中,控制塊包括的m比特均為控制比特,也即控制塊包括m個控制比特;資料塊包括的8m比特均為資料,也即資料塊包括的8m比特資料。
示例性地,將包括8個控制比特的控制塊表示為TXC<7:0>,將包括64比特資料的資料塊表示為TXD<63:0>,控制塊和資料塊的各個比特的順序均為由最高有效位元(most significant bit,MSB)至最低有效位(least significant bit,LSB)。
步驟202,對2
n組碼流塊進行第一編碼,得到目標碼塊,目標碼塊包括基於2
n組碼流塊的控制塊確定的類型和基於2
n組碼流塊的控制塊和資料塊確定的資料單元。
示例性地,各組碼流塊的控制塊均為8比特,資料塊均為64比特,對四組碼流塊進行第一編碼得到一個257比特的目標碼塊。本申請實施例以n=2為例進行說明,n為其他值時,可以對每四組碼流塊執行該第一編碼過程,得到多個目標碼塊。例如,n=3,也即獲取到八組碼流塊,可以對前四組碼流塊進行第一編碼得到一個目標碼塊,對後四組碼流塊進行第一編碼得到一個目標碼塊。
在一種可能的實現方式中,對2
n組碼流塊進行第一編碼,得到目標碼塊包括但不限於如下編碼方式一和編碼方式二。
編碼方式一,基於2
n組碼流塊的控制塊確定目標碼塊的類型為資料碼塊;基於2
n組碼流塊的順序對2
n組碼流塊的資料塊進行第一編碼,得到資料單元;基於類型和資料單元,得到目標碼塊。
示例性地,對於採用編碼方式一得到的目標碼塊,類型用於指示目標碼塊為資料碼塊;資料單元基於2
n組碼流塊的順序對2
n組碼流塊的資料塊進行第一編碼得到。
在一種可能的實現方式中,在2
n組碼流塊的控制塊均為第一指定值的情況下,確定目標碼塊的類型為資料碼塊,第一指定值用於指示碼流塊的類型為資料碼流塊。例如,以各組碼流塊的控制塊均為表示為TXC<7:0>,第一指定值為0x00為例進行說明,在各組碼流塊的TXC<7:0>均為0x00的情況下,各組碼流塊的類型均為資料碼流塊。
在一種可能的實現方式中,基於2
n組碼流塊的順序對2
n組碼流塊的資料塊進行第一編碼,得到資料單元,包括:基於2
n組碼流塊的順序,分別將2
n組碼流塊的資料塊包括的比特作為資料單元的比特,以得到資料單元。
示例性地,以j表示四組碼流塊的序號,j=0,1,2或3。TXD_j<63:0>表示第j組碼流塊的資料塊,tx_coded<256:0>表示目標碼塊,其中,tx_coded<0>表示目標碼塊的類型,tx_coded<(64j+64):(64j+1)>表示目標碼塊的第(64j+64)比特至第(64j+1)比特,則tx_coded<256:0>的各個比特如下方運算式1和運算式2所示:
tx_coded<0>=1 (運算式1)
tx_coded<(64j+64):(64j+1)>=TXD_j<63:0>,j=0,1,2或3 (運算式2)
在運算式1中,tx_coded<0>=1表示類型為資料碼塊,在運算式2中,tx_coded<(64j+64):(64j+1)>=TXD_j<63:0>表示分別將各組碼流塊的資料塊的多個比特作為資料單元的多個比特。
例如,當j=0時,tx_coded<64:1>=TXD_0<63:0>,表示將第0組碼流塊的資料塊的第63比特至第0比特分別作為目標碼塊的第64比特至第1比特。當j=1時,tx_coded<128:65>=TXD_1<63:0>,表示將第1組碼流塊的資料塊的第63比特至第0比特分別作為目標碼塊的第128比特至第65比特。當j=2時,tx_coded<192:129>=TXD_2<63:0>,表示將第2組碼流塊的資料塊的第63比特至第0比特分別作為目標碼塊的第192比特至第129比特。當j=3時,tx_coded<256:193>=TXD_3<63:0>,表示將第3組碼流塊的資料塊的第63比特至第0比特分別作為目標碼塊的第256比特至第193比特。
示例性地,圖3示出了一種得到目標碼塊的過程示意圖。如圖3所示,對於獲取到的四組碼流塊,各組碼流塊的控制塊均表示為TXC<7:0>,資料塊均表示為TXD<63:0>。該四組碼流塊的TXC<7:0>均為0x00,則目標碼塊的類型為資料碼塊。示例性地,目標碼塊的類型對應目標碼塊的第0比特,將第0比特賦值為1表示類型為資料碼塊。關於將第0比特賦值以表示類型為資料碼塊的方式,本申請實施例不加以限定。基於四組碼流塊的順序,分別將四組碼流塊的資料塊的多個比特作為資料單元的多個比特,以得到資料單元。從而,基於類型和資料單元能夠得到目標比特。
示例性地,得到的目標碼塊的結構如圖4所示,目標碼塊的第0比特用於表示目標碼塊的類型,第0比特賦值為1用於表示目標碼塊的類型為資料碼塊。目標碼塊的第1比特至第256比特用於表示目標碼塊的資料單元,其中,D0表示第0組碼流塊的資料塊的64比特,D1表示第1組碼流塊的資料塊的64比特,D2表示第2組碼流塊的資料塊的64比特,D3表示第3組碼流塊的資料塊的64比特。
編碼方式二,基於2
n組碼流塊的控制塊確定目標碼塊的類型為控制碼塊;基於2
n組碼流塊的控制塊,獲取2
n組碼流塊的標識值,標識值用於指示碼流塊的類型;將2
n組碼流塊的標識值作為類型指示;基於2
n組碼流塊的控制塊和資料塊確定的順序對2
n組碼流塊的資料塊進行第一編碼,得到碼塊內容;基於類型和資料單元,得到目標碼塊,其中,資料單元包括類型指示和碼塊內容。
示例性地,對於採用編碼方式二得到的目標碼塊包括類型和資料單元。其中,類型用於指示目標碼塊為控制碼塊;資料單元包括類型指示和碼塊內容,碼塊內容基於2
n組碼流塊的控制塊和資料塊確定的順序對2
n組碼流塊的資料塊進行第一編碼得到,類型指示基於2
n組碼流塊的控制塊得到,類型指示用於指示各組碼流塊的類型。示例性地,2
n組碼流塊的控制塊和資料塊確定的順序為2
n組碼流塊的接收順序。
在一種可能的實現方式中,2
n組碼流塊中的至少一組碼流塊的控制塊為第二指定值,通過該第二指定值可確定目標碼塊的類型為控制碼塊。第二指定值用於指示碼流塊的類型為控制碼流塊,第二指定值與上述第一指定值不同。也就是說,在2
n組碼流塊中的至少一組碼流塊的類型為控制碼流塊的情況下,目標碼塊的類型為控制碼塊。例如,以各組碼流塊的控制塊均為表示為TXC<7:0>,第一指定值為0x00為例,在各組碼流塊中的一組碼流塊的TXC<7:0>不為0x00的情況下,目標碼塊為控制碼塊。
示例性地,對於2
n組碼流塊中的一組碼流塊,在該組碼流塊的類型為資料碼流塊的情況下,該組碼流塊的標識值為第三指定值,在該組碼流塊的類型為控制碼流塊的情況下,該組碼流塊的標識值為第四指定值。例如,第三指定值為1,第四指定值為0。示例性地,將2
n組碼流塊的標識值作為類型指示,包括:按照2
n組碼流塊的控制塊和資料塊確定的順序,將2
n組碼流塊的標識值分別作為類型指示的各個比特,以得到類型指示。
示例性地,基於2
n組碼流塊的控制塊和資料塊確定的順序對2
n組碼流塊的資料塊進行第一編碼,得到碼塊內容,包括:基於2
n組碼流塊的控制塊和資料塊確定的順序對2
n組碼流塊的資料塊進行第一編碼,得到各組碼流塊經第一編碼後的內容,將各組碼流塊經第一編碼後的內容作為碼塊內容。
在一種可能的實現方式中,對於2
n組碼流塊中類型為資料碼流塊(TXC<7:0> = 0x00)的一組碼流塊,該組碼流塊經第一編碼後的內容為該組碼流塊的資料塊的內容。對於2
n組碼流塊中類型為控制碼流塊的一組碼流塊,根據該組碼流塊的控制塊和資料塊的情況,該組碼流塊經第一編碼後的內容包括但不限於如下情況A1至情況A11。
情況A1,控制塊為0x01,資料塊的第7比特至第0比特為0xFB,其中LSB為先發送的比特。
示例性地,針對情況A1,該資料塊包括1個控制位元組和7個資料位元組,其中,資料位元組也稱為八位元組(octet)。在該組碼流塊是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為60比特,前4比特為類型域(block type field,BTF)部分,該BTF部分為0x8。在該組碼流塊不是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為64比特,前8比特為BTF部分,該BTF部分為0x78。無論是上述哪種情況,其餘56比特為資料塊包括的7個資料位元組的各個比特。
情況A2,控制塊為0xFF,資料塊的第(k+7)比特至第k比特為0x06,0x07或0xFE中的至少一種,k=0,1,2,3,4,5,6或7,其中LSB為先發送的比特。
示例性地,針對情況A2,該資料塊包括8個控制位元組。在該組碼流塊是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為60比特,前4比特為BTF部分,該BTF部分為0xE。在該組碼流塊不是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為64比特,前8比特為BTF部分,該BTF部分為0x1E。無論上述哪種情況,其餘56比特為資料塊包括的8個控制位元組的第0比特置第6比特。
情況A3,控制塊為0x01,資料塊的第7比特至第0比特為0x9C,其中LSB為先發送的比特。
示例性地,針對情況A3,該資料塊包括1個控制位元組和7個資料位元組。在該組碼流塊是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為60比特,前4比特為BTF部分,該BTF部分為0xB。在該組碼流塊不是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為64比特,前8比特為BTF部分,該BTF部分為0x4B。無論上述哪種情況,BTF部分後的24比特為資料塊的第31比特至第8比特。資料位元組後的4比特為O碼(O code),O code可以根據IEEE802.3標準得到。示例性的,其餘28比特為多個第一填充比特,其中,多個第一填充比特可以基於資料塊的資料位元組得到,或者多個第一填充比特均為0。
情況A4,控制塊為0xFF,資料塊的第7比特至第0比特為0xFD,其中LSB為先發送的比特。
示例性地,針對情況A4,該資料塊包括8個控制位元組。在該組碼流塊是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為60比特,前4比特為BTF部分,該BTF部分為0x7。在該組碼流塊不是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為64比特,前8比特為BTF部分,該BTF部分為0x87。無論上述哪種情況,BTF部分後的7比特均為0,其餘49比特為資料塊包括的後7個控制位元組的第6比特至第0比特。
情況A5,控制塊為0xFE,資料塊的第15比特至第8比特為0xFD,其中LSB為先發送的比特。
示例性地,針對情況A5,該資料塊包括1個資料位元組和7個控制位元組。在該組碼流塊是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為60比特,前4比特為BTF部分,該BTF部分為0x9。在該組碼流塊不是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為64比特,前8比特為BTF部分,該BTF部分為0x99。無論上述哪種情況,BTF部分後的8比特為資料塊包括的資料位元組的各個比特,資料位元組後的6比特均為0,其餘42比特為資料塊包括的後6個控制位元組的第6比特至第0比特。
情況A6,控制塊為0xFC,資料塊的第23比特至第16比特為0xFD,其中,LSB為先發送的比特。
示例性地,針對情況A6,該資料塊包括2個資料位元組和6個控制位元組。在該組碼流塊是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為60比特,前4比特為BTF部分,該BTF部分為0xA。在該組碼流塊不是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為64比特,前8比特為BTF部分,該BTF部分為0xAA。無論上述哪種情況,BTF部分後的16比特為資料塊包括的2個資料位元組的各個比特,資料位元組後的5比特均為0,其餘35比特為資料塊包括的後5個控制位元組的第6比特至第0比特。
情況A7,控制塊為0xF8,資料塊的第31比特至第24比特為0xFD,其中,LSB為先發送的比特。
示例性地,針對情況A7,該資料塊包括3個資料位元組和5個控制位元組。在該組碼流塊是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為60比特,前4比特為BTF部分,該BTF部分為0x4。在該組碼流塊不是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為64比特,前8比特為BTF部分,該BTF部分為0xB4。無論上述哪種情況,BTF部分後的28比特為資料塊包括的3個資料位元組的各個比特,資料位元組後的4比特均為0,其餘28比特為資料塊包括的後4個控制位元組的第6比特至第0比特。
情況A8,控制塊為0xF0,資料塊的第39比特至第32比特為0xFD,其中,LSB為先發送的比特。
示例性地,針對情況A8,該資料塊包括4個資料位元組和4個控制位元組。在該組碼流塊是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為60比特,前4比特為BTF部分,該BTF部分為0xC。在該組碼流塊不是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為64比特,前8比特為BTF部分,該BTF部分為0xCC。無論上述哪種情況,BTF部分後的32比特為資料塊包括的4個資料位元組的各個比特,資料位元組後的3比特均為0,其餘21比特為資料塊包括的後3個控制位元組的第6比特至第0比特。
情況A9,控制塊為0xE0,資料塊的第47比特至第40比特為0xFD,其中,LSB為先發送的比特。
示例性地,針對情況A9,該資料塊包括5個資料位元組和3個控制位元組。在該組碼流塊是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為60比特,前4比特為BTF部分,該BTF部分為0x2。在該組碼流塊不是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為64比特,前8比特為BTF部分,該BTF部分為0xD2。無論上述哪種情況,BTF部分後的32比特為資料塊包括的5個資料位元組的各個比特,資料位元組後的2比特均為0,其餘12比特為資料塊包括的後2個控制位元組的第6比特至第0比特。
情況A10,控制塊為0xC0,資料塊的第55比特至第48比特為0xFD,其中,LSB為先發送的比特。
示例性地,針對情況A10,該資料塊包括6個資料位元組和2個控制位元組。在該組碼流塊是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為60比特,前4比特為BTF部分,該BTF部分為0x1。在該組碼流塊不是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為64比特,前8比特為BTF部分,該BTF部分為0xE1。無論上述哪種情況,BTF部分後的48比特為資料塊包括的6個資料位元組的各個比特,資料位元組後的1比特為0,其餘7比特為資料塊包括的最後1個控制位元組的第6比特至第0比特。
情況A11,控制塊為0x80,資料塊的第63比特至第56比特為0xFD,其中,LSB為先發送的比特。
示例性地,針對情況A11,該資料塊包括7個資料位元組和1個控制位元組。在該組碼流塊是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為60比特,前4比特為BTF部分,該BTF部分為0xF。在該組碼流塊不是第一組控制碼流塊的情況下,該組碼流塊經第一編碼後的內容為64比特,前8比特為BTF部分,該BTF部分為0xFF。無論上述哪種情況,其餘56比特為資料塊包括的7個資料位元組的各個比特。
由此,基於2
n組碼流塊的控制塊和資料塊確定的順序,將2
n組碼流塊經第一編碼後的內容作為碼塊內容。從而,基於類型、類型指示和碼塊內容能夠得到目標碼塊。
示例性地,j表示四組碼流塊的序號,j=0,1,2或3。TXC_j<7:0>表示第j組碼流塊的控制塊,tx_payload<251:0>表示四組碼流塊經第一編碼後的內容,tx_coded<256:0>表示目標碼塊,其中,tx_coded<0>表示目標碼塊的類型,tx_coded<j+1>表示目標碼塊的類型指示,tx_coded<256:5>表示目標碼塊的碼塊內容,則tx_coded<256:0>的各個比特如下方運算式3至運算式5所示:
tx_coded<0>=0 (運算式3)
(運算式4)
tx_coded<256:5>=tx_payload<251:0> (運算式5)
在運算式3中,tx_coded<0>=0表示類型為控制碼塊。在運算式4中,當TXC_j<7:0>不為0x00時,該j值對應的目標碼塊的比特為0,當TXC_j<7:0>為0x00時,該j值對應的目標碼塊的比特為1。在運算式5中,tx_coded<256:5>=tx_payload<251:0>表示分別將四組碼流塊經第一編碼後的內容的多個比特作為碼塊內容的多個比特。
示例性地,目標碼塊的結構如圖5所示,圖5中的0至3分別表示四組碼流塊的序號。圖5左側表示獲取的四組碼流塊的類型,C表示控制碼流塊,D表示資料碼流塊。圖5右側為對應不同情況得到的目標碼塊的結構,其中,b表示比特,例如1b表示1比特,4b表示4比特。示例性地,圖5中的情況1對應四組碼流塊的類型均為控制碼流塊,第一編碼得到的目標碼塊的第0比特為0,第4比特至第1比特均為0;第8比特至第5比特表示為f_0,對應第0組碼流塊經第一編碼後的內容中的BTF部分,第64比特至第9比特對應第0組碼流塊經第一編碼後的內容中的其餘內容,也即C0;第72比特至第65比特表示為BTF1,對應第1組碼流塊經第一編碼後的內容中的BTF部分,第128比特至第73比特對應第1組碼流塊經第一編碼後的內容中的其餘內容,也即C1;第136比特至第129比特表示為BTF2,對應第2組碼流塊經第一編碼後的內容中的BTF部分,第192比特至第137比特對應第2組碼流塊經第一編碼後的內容中的其餘內容,也即C2;第200比特至第193比特表示為BTF3,對應第3組碼流塊經第一編碼後的內容中的BTF部分,第256比特至第201比特對應第四組碼流塊經第一編碼後的內容中的其餘內容,也即C3。圖5中的其餘情況與上述情況1原理相同,例如,對於情況2,目標碼塊的第68比特至第5比特表示為D0,對應第0組碼流塊經第一編碼後的內容,第72比特至第69比特表示為f_1,對應第1組碼流塊經第一編碼後的內容中的BTF部分,第128比特至第73比特對應第1組碼流塊經第一編碼後的內容中的其餘內容,也即C1,此處不再對圖5中的其他情況進行贅述。
在一種可能的實現方式中,目標碼塊為錯誤碼塊,錯誤碼塊中包括用於標識錯誤的資料。示例性地,當2
n組碼流塊中的一組碼流塊不屬於資料碼流塊,也不屬於上述情況A1至情況A11中的任一種情況時,確定目標碼塊為錯誤碼塊;基於2
n組碼流塊的控制塊,獲取2
n組碼流塊的類型,基於2
n組碼流塊的類型得到目的碼流塊的類型指示,類型和類型指示作為錯誤碼塊中用於標識錯誤的資料。例如,目標碼塊的第0比特對應類型,第1比特至第4比特對應類型指示,將第0比特賦值為0,第1比特至第4比特均賦值為1。
示例性地,目標碼塊為錯誤碼塊時,目標碼塊的結構如圖6所示。圖6左側表示獲取的四組碼流塊的類型,E表示錯誤碼流塊。圖6右側為目標碼塊的結構。目標碼塊的第0比特為0,第1比特至第4比特均為1,第5比特至第64比特對應基於第一組碼流塊得到的填充內容,第65比特至第128比特對應基於第二組碼流塊得到的填充內容,第129比特至第192比特對應基於第三組碼流塊得到的填充內容,第193比特至第256比特對應基於第四組碼流塊得到的填充內容。示例性地,填充內容的各個比特均為0。示例性地,將基於第一組碼流塊得到的填充內容表示為E0,將基於第二組碼流塊得到的填充內容表示為E1,將基於第三組碼流塊得到的填充內容表示為E2,將基於第四組碼流塊得到的填充內容表示為E3。
由於本申請實施例提供的編碼方法能夠對不同類型的碼流塊進行第一編碼,以得到目標碼塊,該方法的適用性較廣。
在一種可能的實現方式中,對2
n組碼流塊進行第一編碼,得到目標碼塊,包括:基於2
n組碼流塊的控制塊和資料塊得到錯誤檢測結果;基於錯誤檢測結果對2
n組碼流塊進行處理,對處理後的2
n組碼流塊進行第一編碼,得到目標碼塊。也就是說,目標碼塊基於錯誤檢測結果對2
n組碼流塊進行處理得到,錯誤檢測結果基於2
n組碼流塊的控制塊和資料塊得到。
示例性地,基於2
n組碼流塊的控制塊和資料塊得到錯誤檢測結果,包括:基於2
n組碼流塊的控制塊和資料塊得到2
n組碼流塊的內容和內容順序,基於2
n組碼流塊的內容和內容順序得到錯誤檢測結果。例如,當2
n組碼流塊的內容順序為第一錯誤情況集合中的至少一種情況時,該2
n組碼流塊的內容順序錯誤,當2
n組碼流塊的內容順序不為第一錯誤情況集合中的任一種情況時,該2
n組碼流塊的內容順序正確。又例如,當2
n組碼流塊的內容為第二錯誤情況集合中的至少一種情況時,該2
n組碼流塊的內容錯誤,當2
n組碼流塊的內容不為第二錯誤情況集合中的任一種情況時,該2
n組碼流塊的內容正確。
在一種可能的實現方式中,以相鄰的兩組碼流塊為例進行說明,第一錯誤情況集合包括但不限於如下4種情況:
(1)在前一組碼流塊包括起始控制字(/S/)的情況下,後一組碼流塊包括除資料位元組以外的其他內容。
(2)在前一組碼流塊僅包括資料位元組的情況下,後一組碼流塊包括除資料位元組或終止控制字(/T/)以外的其他內容。
(3)在前一組碼流塊包括終止控制字的情況下,後一組碼流塊包括除空閒控制字(/I/)或序列有序集控制字(/O/)以外的其他內容。
(4)在前一組碼流塊包括空閒控制字或序列有序集控制字的情況下,後一組碼流塊包括資料位元組或終止控制字。
在一種可能的實現方式中,以一組碼流塊為例進行說明,第二錯誤情況集合包括但不限於如下4種情況:
(1)對於包括起始控制字的碼流塊,起始控制字後為除資料位元組以外的其他內容。
(2)對於包括資料位元組的碼流塊,資料位元組後為除資料位元組或終止控制字以外的其他內容。
(3)對於包括終止控制字的碼流塊,終止控制字後為除空閒控制字或序列有序集控制字以外的其他內容。
(4)對於包括空閒控制字或序列有序集控制字的碼流塊,空閒控制字或序列有序集控制字後為資料位元組或終止控制字。
示例性地,錯誤檢測結果包括2
n組碼流塊的內容順序錯誤或內容錯誤,基於2
n組碼流塊中內容順序錯誤或內容錯誤的碼流塊得到錯誤塊,對2
n組碼流塊中內容順序正確且內容正確的碼流塊及錯誤塊進行第一編碼得到目標碼塊。也即,在錯誤檢測結果包括2
n組碼流塊的內容順序錯誤或內容錯誤的情況下,目標碼塊基於2
n組碼流塊中內容順序正確且內容正確的碼流塊以及錯誤塊進行第一編碼得到,錯誤塊基於2
n組碼流塊中內容順序錯誤或內容錯誤的碼流塊得到。示例性地,錯誤塊包括錯誤控制字(error control character)。
在一種可能的實現方式中,對於內容順序錯誤或內容錯誤的碼流塊,將該碼流塊的內容轉換為錯誤控制字,以得到錯誤塊。例如,內容順序錯誤或內容錯誤的碼流塊為第一組碼流塊,將該碼流塊的內容轉換為第一錯誤控制字,該第一錯誤控制字為60比特,前4比特為0xE,之後每7比特為0x1E。又例如,內容順序錯誤或內容錯誤的碼流塊為第二組碼流塊、第三組碼流塊或第四組碼流塊中的至少一個,將該碼流塊的內容轉換為第二錯誤控制字,該第二錯誤控制字為64比特,前8比特為0x1E,之後每7比特為0x1E。
示例性地,對2
n組碼流塊中內容順序正確且內容順序的碼流塊及錯誤塊進行第一編碼得到目標碼塊,包括:確定目標碼塊的類型為控制碼塊;獲取2
n組碼流塊的標識值,標識值用於指示碼流塊的類型,將2
n組碼流塊的標識值作為類型指示;基於2
n組碼流塊的控制塊和資料塊確定的順序對錯誤塊和2
n組碼流塊中內容順序正確且內容正確的碼流塊的資料塊進行第一編碼,得到碼塊內容。
例如,基於2
n組碼流塊的控制塊和資料塊確定的順序,對2
n組碼流塊中內容順序正確且內容正確的碼流塊的資料塊進行第一編碼,得到內容順序正確且內容正確的碼流塊經第一編碼後的內容,基於內容順序正確且內容正確的碼流塊經第一編碼後的內容和錯誤塊得到目標碼塊。關於對內容順序正確且內容正確的碼流塊的資料塊進行第一編碼的方式,請參照前文中對類型為資料碼流塊的碼流塊和類型為控制碼流塊的碼流塊進行第一編碼的相關內容,此處不再贅述。
示例性地,在2
n組碼流塊中的各組碼流塊均為內容順序錯誤或內容錯誤的碼流塊的情況下,基於2
n組碼流塊得到2
n個錯誤塊,對該2
n個錯誤塊進行第一編碼得到目標碼塊,該目標碼塊為錯誤碼塊。
通過對存在錯誤的碼流塊進行處理,使得後續進行資料傳輸時存在錯誤的資料能夠與正確的資料區分開來,保證資料的可靠性。
示例性地,得到目標碼塊之後,該方法還包括:按照FEC碼型對目標碼塊進行第二編碼,得到第一資料;發送第一資料。關於按照FEC碼型對目標碼塊進行第二編碼的方式,本申請實施例不加以限定。通過按照FEC碼型對目標碼塊進行第二編碼得到第一資料,使得接收端能夠對接收的第一資料進行糾錯,保證資料傳輸的準確性。
本申請實施例提供的編碼方法,對包括控制塊和資料塊的2
n組碼流塊進行第一編碼得到目標碼塊,而不必對2
n組碼流塊中的每組碼流塊進行64B/66B編碼得到2
n個66比特碼塊,再對2
n個66比特碼塊進行轉碼得到目標碼塊。由此,編碼效率得以提高,編碼過程所帶來的時延、功耗和晶片面積佔用都得以降低。
上述介紹了本申請實施例提供的編碼方法,下面介紹本申請實施例提供的解碼方法。結合圖1所示的實施場景,本申請實施例提供的解碼方法如圖7所示。示例性地,本申請實施例提供的解碼方法由圖1中的晶片104執行,該方法包括但不限步驟701和步驟702。
步驟701,獲取目標碼塊,目標碼塊包括類型和資料單元。
示例性地,結合圖1的實施場景,晶片102通過通道105向晶片104發送採用FEC碼型編碼的第一資料,在資料傳輸的過程中第一資料中可能會出現誤碼,將該出現誤碼的資料稱為第二資料,晶片104通過通道105接收到該第二資料。
在一種可能的實現方式中,獲取目標碼塊,包括但不限於如下方式A和方式B。
方式A,接收第二資料,第二資料是基於採用FEC碼型編碼的第一資料獲得的;對第二資料進行第二解碼獲得目標碼塊,該第二解碼為糾錯處理。
示例性地,目標碼塊是對第二資料進行糾錯但未成功糾錯所獲得的錯誤碼塊。例如,對第二資料進行第二解碼獲取目標碼塊,包括:按照該FEC碼型對第二資料進行處理得到第一碼字,對該第一碼字進行糾錯處理,基於糾錯處理的結果獲取目標碼塊。
示例性地,晶片104具有FEC解碼器的功能,當FEC解碼器判定誤碼的個數超出該FEC解碼器的糾錯能力時,也就是說,當FEC解碼器判定無法對第一碼字進行糾錯時,標記該第一碼字中所有的碼塊為錯誤碼塊。從而,在糾錯處理的結果為標記第一碼字中所有的碼塊為錯誤碼塊的情況下,獲取的目標碼塊為錯誤碼塊。
示例性地,在糾錯處理的結果為對第一碼字糾錯成功的情況下,將基於糾錯後的第一碼字得到的碼塊作為獲取的目標碼塊,基於糾錯後的第一碼字得到的碼塊為糾錯成功的碼塊。
方式B,接收第二資料,第二資料是基於採用前向糾錯FEC碼型編碼的第一資料獲得的;對第二資料進行第二解碼獲取目標碼塊,第二解碼為檢錯但不糾錯處理。
示例性地,目標碼塊是從第二資料檢出錯誤但不糾錯所獲得的錯誤碼塊。例如,對第二資料進行第二解碼獲取目標碼塊,包括:按照該FEC碼型對第二資料進行處理得到第一碼字,對第一碼字進行僅檢錯但不糾錯(bypass correction)處理;基於檢錯但不糾錯處理的結果獲取目標碼塊。
示例性地,晶片104具有FEC解碼器的功能,當FEC解碼器檢測到第一碼字中存在錯誤時,標記該第一碼字中所有的碼塊為錯誤碼塊。從而,在檢錯但不糾錯處理的結果為標記第一碼字中所有的碼塊為錯誤碼塊的情況下,獲取的目標碼塊為錯誤碼塊。
示例性地,在檢錯但不糾錯處理的結果為第一碼字無錯誤的情況下,將基於第一碼字得到的碼塊作為獲取的目標碼塊,基於第一碼字得到的碼塊為無錯誤的碼塊。
示例性地,基於目標碼塊執行的幀校驗序列(frame check sequence,FCS)幀校驗失敗。例如,目標碼塊為257比特,前5比特為01111,其餘252比特包括但不限於如下三種情況:(1)前4比特為0x1,其餘比特中每8比特為0x1E;(2)前248比特中每8比特為0x1E,最後4比特為0x1;(3)各個比特均為0。
步驟702,根據目標碼塊的類型和資料單元,對目標碼塊進行第一解碼,得到2
n組碼流塊,任一組碼流塊包括基於類型和資料單元得到的控制塊和資料塊,n為大於1的整數。
示例性地,目標碼塊為257比特,各組碼流塊的控制塊均為8比特,資料塊均為64比特。以對一個目標碼塊進行第一解碼得到四組碼流塊(n=2)為例進行說明,當獲取到多個目標碼塊時,可以對各個目標碼塊分別執行該第一解碼過程,以得到2
n組碼流塊。例如,當獲取到兩個目標碼塊時,可以對該兩個碼塊分別進行第一解碼得到四組碼流塊,也即,對兩個目標碼塊進行第一解碼得到八組碼流塊。
在一種可能的實現方式中,根據目標碼塊的類型和資料單元,對目標碼塊進行第一解碼,得到2
n組碼流塊,包括但不限於如下解碼方式一至解碼方式三。
解碼方式一,基於目標碼塊的類型,確定目標碼塊的類型為資料碼塊,目標碼塊的資料單元包括2
n個8m長度的內容,m為正整數;基於目標碼塊的類型得到2
n組碼流塊的控制塊,對資料單元包括的2
n個8m長度的內容分別進行第一解碼,得到2
n組碼流塊的資料塊。
示例性地,在類型用於指示目標碼塊為資料碼塊的情況下,採用解碼方式一對目標碼塊進行第一解碼得到2
n組碼流塊。該2
n組碼流塊中的第i組碼流塊包括的資料塊是基於對資料單元中與該第i組碼流塊對應的8m長度的內容進行第一解碼得到的,i為大於等於1且小於等於2
n的整數或者i為大於等於0且小於等於2
n-1的整數。
在一種可能的實現方式中,目標碼塊的類型為1用於指示目標碼塊為資料碼塊,目標碼塊的資料單元包括四個8m長度的內容,一個8m長度的內容對應一組碼流塊。示例性地,8m長度為64比特。將四組碼流塊的控制塊均置為0x00,將四個64比特的內容分別作為四組碼流塊的資料塊的內容。
示例性地,j表示四組碼流塊的序號,j=0,1,2或3。RXC_j<7:0>表示第j組碼流塊的控制塊,RXD_j<63:0>表示第j組碼流塊的資料塊,rx_coded<256:0>表示目標碼塊,其中,rx_coded<0>表示目標碼塊的類型,rx_coded<(64j+64):(64j+1)>表示目標碼塊的第(64j+64)比特至第(64j+1)比特,則RXC_j<7:0>和RXD_j<63:0>的內容如下方運算式6和運算式7所示:
RXC_j<7:0>=0x00,j=0,1,2或3 (運算式6)
RXD_j<63:0>=rx_coded<(64j+64):(64j+1)>,j=0,1,2或3 (運算式7)
在運算式6中,RXC_j<7:0>=0x00表示各組碼流塊的控制塊均為0x00,在運算式7中,RXD_j<63:0>=rx_coded<(64j+64):(64j+1)>表示將資料單元的每64比特作為一組碼流塊的資料塊的64比特。
例如,當j=0時,RXD_0<63:0>=rx_coded<64:1>,表示將目標碼塊的第64比特至第1比特分別作為第0組碼流塊的資料塊的第63比特至第0比特。當j=1時,RXD_1<63:0>=rx_coded<128:65>,表示將目標碼塊的第128比特至第65比特分別作為第1組碼流塊的資料塊的第63比特至第0比特。當j=2時,RXD_2<63:0>=rx_coded<192:129>,表示將目標碼塊的第192比特至第129比特分別作為第2組碼流塊的資料塊的第63比特至第0比特。當j=3時,RXD_3<63:0>=rx_coded<256:193>,表示將目標碼塊的第256比特至第193比特分別作為第3組碼流塊的資料塊的第63比特至第0比特。
解碼方式二,基於目標碼塊的類型,確定目標碼塊的類型為控制碼塊,目標碼塊的資料單元包括類型指示和碼塊內容,類型指示包括2
n個比特,所述2
n個比特中的1個比特用於指示2
n組碼流塊中與該比特對應的一組碼流塊的類型,碼塊內容包括2
n個比特組;基於類型、類型指示中與2
n組碼流塊對應的比特和碼塊內容中與2
n組碼流塊對應的比特組得到2
n組碼流塊的控制塊,基於類型指示中與2
n組碼流塊對應的比特對碼塊內容中與2
n組碼流塊對應的比特組進行第一解碼得到2
n組碼流塊的資料塊。
示例性地,在類型用於指示目標碼塊為控制碼塊的情況下,採用解碼方式二對目標碼塊進行第一解碼得到2
n組碼流塊。該2
n組碼流塊中的第i組碼流塊包括的控制塊是基於類型、類型指示中與第i組碼流塊對應的比特和碼塊內容中與第i組碼流塊對應的比特組得到的,i為大於等於1且小於等於2
n的整數或者i為大於等於0且小於等於2
n-1的整數;該2
n組碼流塊中的第i組碼流塊包括的資料塊是基於類型指示中與第i組碼流塊對應的比特對碼塊內容中與第i組碼流塊對應的比特組進行第一解碼得到的。示例性地,比特組為多個比特的集合。
示例性地,當類型指示中的一個比特為1時,基於該比特得到的碼流塊的類型為資料碼流塊;當類型指示中的一個比特為0時,基於該比特得到的碼流塊的類型為控制碼流塊。
在一種可能的實現方式中,2
n個比特組包括第一比特組和2
n-1個第二比特組,第一比特組包括的比特數量和第二比特組包括的比特數量不相同。示例性地,類型指示的一個比特對應碼塊內容的一個比特組。例如,以圖5示出的目標碼塊的結構為例進行說明。對於情況1,類型指示包括四個比特,碼塊內容包括四個比特組。其中,類型指示的第一個比特對應第一比特組,第一比特組為目標碼塊的第5比特至第64比特;類型指示的第二個比特對應一個第二比特組,該第二個比特對應的第二比特組為目標碼塊的第65比特至第128比特;類型指示的第三個比特對應一個第二比特組,該第三個比特對應的第二比特組為目標碼塊的第129比特至第192比特;類型指示的第四個比特對應一個第二比特組,該第四個比特對應的第二比特組為目標碼塊的第193比特至第256比特。對於情況2,類型指示包括四個比特,碼塊內容包括四個比特組。其中,類型指示的第一個比特對應一個第二比特組,該第一個比特對應的第二比特組為目標碼塊的第5比特至第67比特;類型指示的第二個比特對應第一比特組,第一比特組為目標碼塊的第68比特至第128比特;類型指示的第三個比特對應一個第二比特組,該第三個比特對應的第二比特組為目標碼塊的第129比特至第192比特;類型指示的第四個比特對應一個第二比特組,該第四個比特對應的第二比特組為目標碼塊的第193比特至第256比特。其餘情況與上述情況1和情況2的原理相同,此處不再贅述。
在一種可能的實現方式中,對於類型指示的一個比特,在該比特為1的情況下,基於類型、該比特和該比特對應的比特組得到的碼流塊的控制塊為0x00,基於該比特對該比特對應的比特組進行第一解碼得到的碼流塊的資料塊的內容為比特組的內容。在該比特為0的情況下,根據該比特的位置和該比特對應的比特組的情況,得到的碼流塊的控制塊和資料塊包括但不限於如下情況B1至B11。
情況B1,該比特為第一個為0的比特,該比特對應的比特組的前4比特為BTF部分,該BTF部分為0x8;或者該比特不為第一個為0的比特,該比特對應的比特組的前8比特為BTF部分,該BTF部分為0x78。
示例性地,針對情況B1,該比特對應的比特組的BTF部分之後包括7個資料位元組。碼流塊的控制塊為0x01,碼流塊的資料塊為64比特。資料塊的第7比特至第0比特為0xFB,其餘56比特分別為該比特對應的比特組的7個資料位元組的各個比特。其中,LSB為先發送的比特。
情況B2,該比特為第一個為0的比特,該比特對應的比特組的前4比特為BTF部分,該BTF部分為0xE;或者該比特不為第一個為0的比特,該比特對應的比特組的前8比特為BTF部分,該BTF部分為0x1E。
示例性地,針對情況B2,該比特對應的比特組的BTF部分之後包括8個控制比特組,每個控制比特組包括7比特。碼流塊的控制塊為0xFF,碼流塊的資料塊為64比特。資料塊的64比特基於8個控制比特組得到,其中,資料塊的每8比特基於一個控制比特組。關於基於各個控制比特組得到資料塊的各個比特的方式,本申請實施例對此不加以限定,例如,根據IEEE802.3標準得到。示例性地,資料塊的第(k+7)比特至第k比特為0x06,0x07或0xFE中的至少一種,k=0,1,2,3,4,5,6或7。其中,LSB為先發送的比特。
情況B3,該比特為第一個為0的比特,該比特對應的比特組的前4比特為BTF部分,該BTF部分為0xB;或者該比特不為第一個為0的比特,該比特對應的比特組的前8比特為BTF部分,該BTF部分為0x4B。
示例性地,針對情況B3,該比特對應的比特組的BTF部分之後包括3個資料位元組,1個4比特的O碼和多個第一填充比特。碼流塊的控制塊為0x01,碼流塊的資料塊為64比特。資料塊的第7比特至第0比特為0x9C,資料塊的第31比特至第8比特為3個資料位元組的各個比特,其餘32比特基於多個第一填充比特得到。其中,LSB為先發送的比特。關於基於多個第一填充比特得到其餘32比特的方式,本申請實施例對此不加以限定。
情況B4,該比特為第一個為0的比特,該比特對應的比特組的前4比特為BTF部分,該BTF部分為0x7;或者該比特不為第一個為0的比特,該比特對應的比特組的前8比特為BTF部分,該BTF部分為0x87。
示例性地,針對情況B4,該比特對應的比特組的BTF部分之後包括1個7比特的終止控制字和7個控制比特組,每個控制比特組包括7比特。碼流塊的控制塊為0xFF,碼流塊的資料塊為64比特。資料塊的第7比特至第0比特為0xFD,其餘56比特基於7個控制比特組得到,其中,其餘56比特中的每8比特基於一個控制比特組得到。其中,LSB為先發送的比特。
情況B5,該比特為第一個為0的比特,該比特對應的比特組的前4比特為BTF部分,該BTF部分為0x9;或者該比特不為第一個為0的比特,該比特對應的比特組的前8比特為BTF部分,該BTF部分為0x99。
示例性地,針對情況B5,該比特對應的比特組的BTF部分之後包括1個資料位元組,1個6比特的終止控制字和6個控制比特組,每個控制比特組包括7比特。碼流塊的控制塊為0xFE,碼流塊的資料塊為64比特。資料塊的第7比特至第0比特為資料位元組的各個比特,資料塊的第15比特至第8比特為0xFD,其餘48比特基於6個控制比特組得到,其中,其餘48比特中的每8比特基於一個控制比特組得到。其中,LSB為先發送的比特。
情況B6,該比特為第一個為0的比特,該比特對應的比特組的前4比特為BTF部分,該BTF部分為0xA;或者該比特不為第一個為0的比特,該比特對應的比特組的前8比特為BTF部分,該BTF部分為0xAA。
示例性地,針對情況B6,該比特對應的比特組的BTF部分之後包括2個資料位元組,1個5比特的終止控制字和5個控制比特組,每個控制比特組包括7比特。碼流塊的控制塊為0xFC,碼流塊的資料塊為64比特。資料塊的第15比特至第0比特基於2個資料位元組的各個比特得到,資料塊的第23比特至第16比特為0xFD,其餘40比特基於5個控制比特組得到,其中,其餘40比特中的每8比特基於一個控制比特組得到。其中,LSB為先發送的比特。
情況B7,該比特為第一個為0的比特,該比特對應的比特組的前4比特為BTF部分,該BTF部分為0x4;或者該比特不為第一個為0的比特,該比特對應的比特組的前8比特為BTF部分,該BTF部分為0xB4。
示例性地,針對情況B7,該比特對應的比特組的BTF部分之後包括3個資料位元組,1個4比特的終止控制字和4個控制比特組,每個控制比特組包括7比特。碼流塊的控制塊為0xF8,碼流塊的資料塊為64比特。資料塊的第23比特至第0比特基於3個資料位元組的各個比特得到,資料塊的第31比特至第24比特為0xFD,其餘32比特基於4個控制比特組得到,其中,其餘32比特中的每8比特基於一個控制比特組得到。其中,LSB為先發送的比特。
情況B8,該比特為第一個為0的比特,該比特對應的比特組的前4比特為BTF部分,該BTF部分為0xC;或者該比特不為第一個為0的比特,該比特對應的比特組的前8比特為BTF部分,該BTF部分為0xCC。
示例性地,針對情況B8,該比特對應的比特組的BTF部分之後包括4個資料位元組,1個3比特的終止控制字和3個控制比特組,每個控制比特組包括7比特。碼流塊的控制塊為0xF0,碼流塊的資料塊為64比特。資料塊的第31比特至第0比特基於4個資料位元組的各個比特得到,資料塊的第39比特至第32比特為0xFD,其餘24比特基於3個控制比特組得到,其中,其餘24比特中的每8比特基於一個控制比特組得到。其中,LSB為先發送的比特。
情況B9,該比特為第一個為0的比特,該比特對應的比特組的前4比特為BTF部分,該BTF部分為0x2;或者該比特不為第一個為0的比特,該比特對應的比特組的前8比特為BTF部分,該BTF部分為0xD2。
示例性地,針對情況B9,該比特對應的比特組的BTF部分之後包括5個資料位元組,1個2比特的終止控制字和2個控制比特組,每個控制比特組包括7比特。碼流塊的控制塊為0xE0,碼流塊的資料塊為64比特。資料塊的第39比特至第0比特基於5個資料位元組的各個比特得到,資料塊的第47比特至第40比特為0xFD,其餘16比特基於2個控制比特組得到,其中,其餘16比特中的每8比特基於一個控制比特組。其中,LSB為先發送的比特。
情況B10,該比特為第一個為0的比特,該比特對應的比特組的前4比特為BTF部分,該BTF部分為0x1;或者該比特不為第一個為0的比特,該比特對應的比特組的前8比特為BTF部分,該BTF部分為0xE1。
示例性地,針對情況B10,該比特對應的比特組的BTF部分之後包括6個資料位元組,1個1比特的終止控制字和1個7比特的控制比特組。碼流塊的控制塊為0xC0,碼流塊的資料塊為64比特。資料塊的第47比特至第0比特基於6個資料位元組的各個比特得到,資料塊的第55比特至第48比特為0xFD,其餘8比特基於控制比特組得到。其中,LSB為先發送的比特。
情況B11,該比特為第一個為0的比特,該比特對應的比特組的前4比特為BTF部分,該BTF部分為0xF;或者該比特不為第一個為0的比特,該比特對應的比特組的前8比特為BTF部分,該BTF部分為0xFF。
示例性地,針對情況B11,該比特對應的比特組的BTF部分之後包括7個資料位元組。碼流塊的控制塊為0x80,碼流塊的資料塊為64比特。資料塊的第55比特至第0比特基於7個資料位元組的各個比特得到,資料塊的第63比特至第56比特為0xFD。其中,LSB為先發送的比特。
在一些實施例中,基於類型、類型指示中與2
n組碼流塊對應的比特和碼塊內容中與2
n組碼流塊對應的比特組得到2
n組碼流塊的控制塊,基於類型指示中與2
n組碼流塊對應的比特對碼塊內容中與2
n組碼流塊對應的比特組進行第一解碼得到2
n組碼流塊的資料塊,包括:基於2
n個比特組獲取2
n個64比特的第三比特組,基於類型、類型指示中與2
n組碼流塊對應的比特和2
n個第三比特組得到2
n組碼流塊的控制塊,基於類型指示中與2
n組碼流塊對應的比特對2
n個第三比特組進行第一解碼得到2
n組碼流塊的資料塊。
示例性地,對於第一個為0的比特,該比特對應的比特組包括4比特BTF部分,基於該4比特BTF部分獲取8比特BTF部分,得到第三比特組。例如,基於該4比特BTF部分查詢IEEE802.3標準,以獲取8比特BTF部分,或者基於4比特BTF部分查詢4比特BTF部分和8比特BTF部分的對應表,以獲取8比特BTF部分。
在查詢成功的情況下,也即IEEE802.3標準中包括該4比特BTF部分對應的8比特BTF部分,或者對應表中包括該4比特BTF部分對應的8比特BTF部分,將該8比特BTF部分作為獲取到的8比特BTF部分。在查詢失敗的情況下,也即IEEE802.3標準中不包括該4比特BTF部分對應的8比特BTF部分,或者對應表中不包括該4比特BTF部分對應的8比特BTF部分,標記該4比特BTF部分以獲取8比特BTF部分。關於標記4比特BTF部分的方式,本申請實施例不加以限定,例如將4比特BTF部分作為第3比特至第0比特,將第7比特至第4比特均置為0。示例性地,在查詢失敗的情況下,基於該第三比特組得到的碼流塊的控制塊為0xFF,資料塊為0xFEFEFEFE。
在另一些實施例中,對於第一個為0的比特,基於類型、該比特和該比特對應的比特組得到碼流塊的控制塊,基於該比特對該比特對應的比特組進行第一解碼得到碼流塊的資料塊,包括:基於該比特對應的比特組包括的4比特BTF部分查詢8比特BTF部分,在查詢失敗的情況下,將碼流塊的控制塊置為0xFF,將碼流塊的資料塊置為0xFEFEFEFE。關於基於4比特BTF部分查詢8比特BTF部分的方式,與上述相關內容中的查詢方式原理相同,此處不再贅述。
解碼方式三,基於目標碼塊的類型和資料單元,確定目標碼塊的類型為錯誤碼塊;得到2
n組碼流塊的控制塊和資料塊,2
n組碼流塊均為錯誤碼流塊。
示例性地,資料單元包括類型指示,類型和類型指示用於指示目標碼塊為錯誤碼塊;2
n組碼流塊中每組碼流塊包括的控制塊為第一值,2
n組碼流塊中每組碼流塊包括的資料塊為第二值,第一值和第二值用於指示碼流塊為錯誤碼流塊。例如,目標碼塊的類型為0,類型指示為1111,該目標碼塊為錯誤碼塊,則經第一解碼得到的2
n組碼流塊中每組碼流塊包括的控制塊為0xFF,2
n組碼流塊中每組碼流塊包括的資料塊均為0xFEFEFEFE。
由於本申請實施例提供的解碼方法能夠對不同類型的目標碼塊進行第一解碼,以得到2
n組碼流塊,該方法的適用性較廣。
在一種可能的實現方式中,根據目標碼塊的類型和資料單元,對目標碼塊進行第一解碼,得到2
n組碼流塊,包括:基於目標碼塊的類型和資料單元得到錯誤檢測結果;根據錯誤檢測結果以及目標碼塊的類型和資料單元對目標碼塊進行第一解碼,得到2
n組碼流塊。也就是說,2
n組碼流塊根據錯誤檢測結果以及目標碼塊的類型和資料單元對目標碼塊進行第一解碼得到,錯誤檢測結果基於目標碼塊的類型和資料單元得到。
示例性地,基於目標碼塊的類型和資料單元得到錯誤檢測結果,包括:基於目標碼塊的類型和資料單元得到目標碼塊的內容和內容順序,基於目標碼塊的內容和內容順序得到錯誤檢測結果。例如,當目標碼塊的內容順序為第三錯誤情況集合中的至少一種情況時,該目標碼塊的內容順序錯誤,當目標碼塊的內容順序不為第三錯誤情況集合中的任一種情況時,該目標碼塊的內容順序正確。又例如,當目標碼塊的內容為第四錯誤情況集合中的至少一種情況時,該目標碼塊的內容錯誤,當目標碼塊的內容不為第四錯誤情況集合中的任一種情況時,該目標碼塊的內容正確。
在一種可能的實現方式中,以目標碼塊為控制碼塊,該目標碼塊包括四個比特組為例進行說明,對於相鄰的兩個比特組,第三錯誤情況集合包括但不限於如下4種情況:
(1)在前一個比特組包括起始控制字(/S/)的情況下,後一個比特組包括除資料位元組以外的其他內容。
(2)在前一個比特組僅包括資料位元組的情況下,後一個比特組包括除資料位元組或終止控制字(/T/)以外的其他內容。
(3)在前一個比特組包括終止控制字的情況下,後一個比特組包括除空閒控制字(/I/)或序列有序集控制字(/O/)以外的其他內容。
(4)在前一個比特組包括空閒控制字或序列有序集控制字的情況下,後一個比特組包括資料位元組或終止控制字。
本申請實施例中的控制字的具體含義和取值可參考具體參考IEEE802.3-2018,本申請實施例不再贅述。
在一種可能的實現方式中,以一個比特組為例進行說明,第四錯誤情況集合包括但不限於如下4種情況:
(1)對於包括起始控制字的比特組,起始控制字後為除資料位元組以外的其他內容。
(2)對於包括資料位元組的比特組,資料位元組後為除資料位元組或終止控制字以外的其他內容。
(3)對於包括終止控制字的比特組,終止控制字後為除空閒控制字或序列有序集控制字以外的其他內容。
(4)對於包括空閒控制字或序列有序集控制字的比特組,空閒控制字或序列有序集控制字後為資料位元組或終止控制字。
在一種可能的實現方式中,錯誤檢測結果包括目標碼塊的內容順序錯誤或內容錯誤,根據錯誤檢測結果以及目標碼塊的類型和資料單元對目標碼塊進行第一解碼,得到2
n組碼流塊,包括:對目標碼塊進行轉換得到第二碼塊,根據第二碼塊的類型和資料單元對第二碼塊進行第一解碼得到2
n組碼流塊。也即,2
n組碼流塊根據第二碼塊的類型和資料單元對第二碼塊進行第一解碼得到,第二碼塊是對目標碼塊進行轉換得到的且與目標碼塊比特數相同的碼塊。
示例性地,對目標碼塊進行轉換得到第二碼塊,包括:對於目標碼塊中內容順序錯誤或內容錯誤的比特組,將該內容順序錯誤或內容錯誤的比特組轉換為錯誤控制字;基於該錯誤控制字和目標碼塊中內容順序正確且內容正確的比特組,得到第二碼塊。例如,將第一比特組轉換為第一錯誤控制字,該第一比特組是內容順序錯誤或內容錯誤的比特組。又例如,將第二比特組轉換為第二錯誤控制字,該第二比特組是內容順序錯誤或內容錯誤的比特組。在一種可能的實現方式中,轉換得到的第二碼塊為控制碼塊,可以採用解碼方式二對該第二碼塊進行第一解碼。
在另一種可能的實現方式中,錯誤檢測結果包括目標碼塊的內容順序錯誤或內容錯誤,根據錯誤檢測結果以及目標碼塊的類型和資料單元對目標碼塊進行第一解碼,得到2
n組碼流塊,包括:基於目標碼塊的類型和資料單元對目標碼塊進行第一解碼得到2
n組第一碼流塊,對2
n組第一碼流塊進行轉換得到2
n組碼流塊。也就是說,2
n組碼流塊基於對2
n組第一碼流塊進行轉換得到,2
n組第一碼流塊基於目標碼塊的類型和資料單元對目標碼塊進行第一解碼得到。
示例性地,對2
n組第一碼流塊進行轉換得到2
n組碼流塊,包括:對於2
n組第一碼流塊中基於內容順序錯誤或內容錯誤的比特組得到的碼流塊,將該碼流塊轉換為錯誤碼流塊。例如,錯誤碼流塊的控制塊為0xFF,資料塊為0xFEFEFEFE。通過對存在錯誤的目標碼塊進行處理,使得接收端能夠區分錯誤資料和正確資料,保證資料的可靠性。
本申請實施例提供的解碼方法,對目標碼塊進行第一解碼得到包括控制塊和資料塊的2
n組碼流塊,而不必對目標碼塊進行轉碼得到2
n個66比特碼塊,再對2
n個66比特碼塊進行解碼得到2
n組碼流塊。由此,解碼效率得以提高,解碼過程所帶來的時延、功耗和晶片面積佔用都得以降低。
以上介紹了本申請實施例提供的編碼方法,與上述方法對應,本申請實施例還提供了編碼裝置。圖8是本申請實施例提供的一種編碼裝置的結構示意圖,該裝置應用於第一網路設備,該第一網路設備為上述圖1所示實施例中的第一網路設備。基於圖8所示的如下多個模組,該圖8所示的編碼裝置能夠執行第一網路設備所執行的全部或部分操作。應理解到,該裝置可以包括比所示模組更多的附加模組或者省略其中所示的一部分模組,本申請實施例對此並不進行限制。如圖8所示,該裝置包括:
獲取模組801,用於獲取2
n組碼流塊,任一組碼流塊包括控制塊和資料塊,n為大於1的整數;
第一編碼模組802,用於對2
n組碼流塊進行第一編碼,得到目標碼塊,目標碼塊包括基於2
n組碼流塊的控制塊確定的類型和基於2
n組碼流塊的控制塊和資料塊確定的資料單元。
在一種可能的實現方式中,類型用於指示目標碼塊為資料碼塊;資料單元基於2
n組碼流塊的順序對2
n組碼流塊的資料塊進行第一編碼得到。
在一種可能的實現方式中,類型用於指示目標碼塊為控制碼塊;資料單元包括類型指示和碼塊內容,碼塊內容基於2
n組碼流塊的控制塊和資料塊確定的順序對2
n組碼流塊的資料塊進行第一編碼得到,類型指示基於2
n組碼流塊的控制塊得到,類型指示用於指示各組碼流塊的類型。
在一種可能的實現方式中,目標碼塊為錯誤碼塊,錯誤碼塊中包括用於標識錯誤的資料。
在一種可能的實現方式中,目標碼塊基於錯誤檢測結果對2
n組碼流塊進行處理得到,錯誤檢測結果基於2
n組碼流塊的控制塊和資料塊得到。
在一種可能的實現方式中,錯誤檢測結果包括2
n組碼流塊的內容順序錯誤或內容錯誤,目標碼塊基於2
n組碼流塊中內容順序正確且內容正確的碼流塊以及錯誤塊進行第一編碼得到,錯誤塊基於2
n組碼流塊中內容順序錯誤或內容錯誤的碼流塊得到。
在一種可能的實現方式中,控制塊包括m比特,資料塊包括8m比特,m為正整數。
在一種可能的實現方式中,n的取值為2,m的取值為8,目標碼塊為257比特。
在一種可能的實現方式中,2
n組碼流塊均來自介質無關介面MII。
在一種可能的實現方式中,該裝置還包括:第二編碼模組803,用於按照前向糾錯FEC碼型對目標碼塊進行第二編碼,得到第一資料;發送模組804,用於發送第一資料。
本申請實施例提供的編碼裝置,對包括控制塊和資料塊的2
n組碼流塊進行第一編碼得到目標碼塊,而不必對2
n組碼流塊中的每組碼流塊進行64B/66B編碼得到2n個66比特碼塊,再對2
n個66比特碼塊進行轉碼得到目標碼塊。由此,編碼效率得以提高,編碼過程所帶來的時延、功耗和晶片面積佔用都得以降低。
以上介紹了本申請實施例提供的解碼方法,與上述方法對應,本申請實施例還提供了解碼裝置。圖9是本申請實施例提供的一種解碼裝置的結構示意圖,該裝置可應用於第二網路設備,該第二網路設備為上述圖1所示實施例中的第二網路設備。基於圖9所示的如下多個模組,該圖9所示的解碼裝置能夠執行第二網路設備所執行的全部或部分操作。應理解到,該裝置可以包括比所示模組更多的附加模組或者省略其中所示的一部分模組,本申請實施例對此並不進行限制。如圖9所示,該裝置包括:
獲取模組901,用於獲取目標碼塊,目標碼塊包括類型和資料單元;
解碼模組902,用於根據目標碼塊的類型和資料單元,對目標碼塊進行第一解碼,得到2
n組碼流塊,任一組碼流塊包括基於類型和資料單元得到的控制塊和資料塊,n為大於1的整數。
在一種可能的實現方式中,類型用於指示目標碼塊為資料碼塊;2
n組碼流塊中的第i組碼流塊包括的資料塊是基於對資料單元中與第i組碼流塊對應的8m長度的內容進行第一解碼得到的,m為正整數,i為大於等於1且小於等於2
n的整數或者i為大於等於0且小於等於2
n-1的整數。
在一種可能的實現方式中,類型用於指示目標碼塊為控制碼塊,資料單元包括類型指示和碼塊內容,類型指示包括2
n個比特,2
n個比特中的1個比特用於指示2
n組碼流塊中與比特對應的一組碼流塊的類型,碼塊內容包括2
n個比特組;2
n組碼流塊中的第i組碼流塊包括的控制塊是基於類型、類型指示中與第i組碼流塊對應的比特和碼塊內容中與第i組碼流塊對應的比特組得到的,i為大於等於1且小於等於2
n的整數或者i為大於等於0且小於等於2
n-1的整數;2
n組碼流塊中的第i組碼流塊包括的資料塊是基於類型指示中與第i組碼流塊對應的比特對碼塊內容中與第i組碼流塊對應的比特組進行第一解碼得到的。
在一種可能的實現方式中,2
n個比特組包括第一比特組和2
n-1個第二比特組,第一比特組包括的比特數量和第二比特組包括的比特數量不相同。
在一種可能的實現方式中,資料單元包括類型指示,類型和類型指示用於指示目標碼塊為錯誤碼塊;2
n組碼流塊中每組碼流塊包括的控制塊為第一值,2
n組碼流塊中每組碼流塊包括的資料塊為第二值,第一值和第二值用於指示碼流塊為錯誤碼流塊。
在一種可能的實現方式中,獲取模組,用於接收第二資料,第二資料是基於採用前向糾錯FEC碼型編碼的第一資料獲得的;對第二資料進行第二解碼獲取目標碼塊,第二解碼為糾錯處理。
在一種可能的實現方式中,目標碼塊是對第二資料進行糾錯但未成功糾錯所獲得的碼塊。
在一種可能的實現方式中,獲取模組901,用於接收第二資料,第二資料是基於採用前向糾錯FEC碼型編碼的第一資料獲得的;對第二資料進行第二解碼獲取目標碼塊,第二解碼為檢錯但不糾錯處理。
在一種可能的實現方式中,目標碼塊是從第二資料檢出錯誤但不糾錯所獲得的碼塊。
在一種可能的實現方式中,2
n組碼流塊根據錯誤檢測結果以及目標碼塊的類型和資料單元對目標碼塊進行第一解碼得到,錯誤檢測結果基於目標碼塊的類型和資料單元得到。
在一種可能的實現方式中,錯誤檢測結果包括目標碼塊的內容順序錯誤或內容錯誤,2
n組碼流塊根據第二碼塊的類型和資料單元對第二碼塊進行第一解碼得到,第二碼塊是對目標碼塊進行轉換得到的且與目標碼塊比特數相同的碼塊。
在一種可能的實現方式中,錯誤檢測結果包括目標碼塊的內容順序錯誤或內容錯誤,2
n組碼流塊基於對2
n組第一碼流塊進行轉換得到,2
n組第一碼流塊基於目標碼塊的類型和資料單元對目標碼塊進行第一解碼得到。
在一種可能的實現方式中,控制塊包括m比特,資料塊包括8m比特,m為正整數。
在一種可能的實現方式中,n的取值為2,m的取值為8,目標碼塊為257比特。
在一種可能的實現方式中,2
n組碼流塊均為介質無關介面MII格式。
本申請實施例提供的解碼裝置,對目標碼塊進行第一解碼得到包括控制塊和資料塊的2
n組碼流塊,而不必對目標碼塊進行轉碼得到2
n個66比特碼塊,再對2
n個66比特碼塊進行解碼得到2
n組碼流塊。由此,解碼效率得以提高,解碼過程所帶來的時延、功耗和晶片面積佔用都得以降低。
應理解的是,上述圖8和圖9提供的裝置在實現其功能時,僅以上述各功能模組的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模組完成,即將設備的內部結構劃分成不同的功能模組,以完成以上描述的全部或者部分功能。另外,上述實施例提供的裝置與方法實施例屬於同一構思,其具體實現過程詳見方法實施例,這裡不再贅述。
上述實施例中的設備的具體硬體結構如圖10所示的網路設備1500,包括收發器1501、處理器1502和記憶體1503。收發器1501、處理器1502和記憶體1503之間通過匯流排1504連接。其中,收發器1501用於接收報文和發送報文,記憶體1503用於存放指令或程式碼,處理器1502用於調用記憶體1503中的指令或程式碼使得設備執行上述方法實施例中第一網路設備或第二網路設備的相關處理步驟。在具體實施例中,本申請實施例的網路設備1500可對應於上述各個方法實施例中的第一網路設備或第二網路設備,網路設備1500中的處理器1502讀取記憶體1503中的指令或程式碼,使圖10所示的網路設備1500能夠執行第一網路設備或第二網路設備所執行的全部或部分操作。
網路設備1500還可以對應於上述圖8和圖9所示的裝置,例如,圖8和圖9中所涉及的獲取模組801和獲取模組901相當於收發器1501,編碼模組802和解碼模組902處理器1502。
參見圖11,圖11示出了本申請一個示例性實施例提供的網路設備2000的結構示意圖。圖11所示的網路設備2000用於執行上述圖2所示的編碼方法所涉及的操作和圖7所示的解碼方法所涉及的操作。該網路設備2000例如是交換機、路由器等。
如圖11所示,網路設備2000包括至少一個處理器2001、記憶體2003以及至少一個通信介面2004。
處理器2001例如是通用中央處理器(central processing unit,CPU)、數位訊號處理器(digital signal processor,DSP)、網路處理器(network processer,NP)、圖形處理器(graphics processing unit,GPU)、神經網路處理器(neural-network processing units,NPU)、資料處理單元(data processing unit,DPU)、微處理器或者一個或多個用於實現本申請方案的積體電路。例如,處理器2001包括專用積體電路(application-specific integrated circuit,ASIC),可程式設計邏輯器件(programmable logic device,PLD)或者其他可程式設計邏輯器件、電晶體邏輯器件、硬體部件或者其任意組合。PLD例如是複雜可程式設計邏輯器件(complex programmable logic device,CPLD)、現場可程式設計邏輯閘陣列(field-programmable gate array,FPGA)、通用陣列邏輯(generic array logic,GAL)或其任意組合。其可以實現或執行結合本發明實施例公開內容所描述的各種邏輯方框、模組和電路。所述處理器也可以是實現計算功能的組合,例如包括一個或多個微處理器組合,DSP和微處理器的組合等等。
可選的,網路設備2000還包括匯流排。匯流排用於在網路設備2000的各元件之間傳送資訊。匯流排可以是外設部件互連標準(peripheral component interconnect,簡稱PCI)匯流排或延伸工業標準架構(extended industry standard architecture,簡稱EISA)匯流排等。匯流排可以分為位址匯流排、資料匯流排、控制匯流排等。為便於表示,圖11中僅用一條粗線表示,但並不表示僅有一根匯流排或一種類型的匯流排。圖11中網路設備2000的各元件之間除了採用匯流排連接,還可採用其他方式連接,本發明實施例不對各元件的連接方式進行限定。
記憶體2003例如是唯讀記憶體(read-only memory,ROM)或可儲存靜態資訊和指令的其它類型的靜態存放裝置,又如是隨機存取記憶體(random access memory,RAM)或者可儲存資訊和指令的其它類型的動態儲存裝置設備,又如是電可擦可程式設計唯讀記憶體(electrically erasable programmable read-only Memory,EEPROM)、唯讀光碟(compact disc read-only memory,CD-ROM)或其它光碟儲存、光碟儲存(包括壓縮光碟、鐳射碟、光碟、數位通用光碟、藍光光碟等)、磁片儲存介質或者其它磁存放裝置,或者是能夠用於攜帶或儲存具有指令或資料結構形式的期望的程式碼並能夠由電腦存取的任何其它介質,但不限於此。記憶體2003例如是獨立存在,並通過匯流排與處理器2001相連接。記憶體2003也可以和處理器2001集成在一起。
通信介面2004使用任何收發器一類的裝置,用於與其它設備或通信網路通信,通信網路可以為乙太網、無線接入網(RAN)或無線局域網(wireless local area networks,WLAN)等。通信介面2004可以包括有線通信介面,還可以包括無線通訊介面。具體的,通信介面2004可以為乙太(ethernet)介面、快速乙太(fast ethernet,FE)介面、千兆乙太(gigabit ethernet,GE)介面,非同步傳輸模式(asynchronous transfer mode,ATM)介面,無線局域網(wireless local area networks,WLAN)介面,蜂窩網路通信介面或其組合。乙太網介面可以是光介面,電介面或其組合。在本申請實施例中,通信介面2004可以用於網路設備2000與其他設備進行通信。
在具體實現中,作為一種實施例,處理器2001可以包括一個或多個CPU,如圖11中所示的CPU0和CPU1。這些處理器中的每一個可以是一個單核(single-CPU)處理器,也可以是一個多核(multi-CPU)處理器。這裡的處理器可以指一個或多個設備、電路、和/或用於處理資料(例如電腦程式指令)的處理核。
在具體實現中,作為一種實施例,網路設備2000可以包括多個處理器,如圖11中所示的處理器2001和處理器2005。這些處理器中的每一個可以是一個單核處理器(single-CPU),也可以是一個多核處理器(multi-CPU)。這裡的處理器可以指一個或多個設備、電路、和/或用於處理資料(如電腦程式指令)的處理核。
在具體實現中,作為一種實施例,網路設備2000還可以包括輸出設備和輸入裝置。輸出設備和處理器2001通信,可以以多種方式來顯示資訊。例如,輸出設備可以是液晶顯示器(liquid crystal display,LCD)、發光二級管(light emitting diode,LED)顯示裝置、陰極射線管(cathode ray tube,CRT)顯示裝置或投影儀(projector)等。輸入裝置和處理器2001通信,可以以多種方式接收使用者的輸入。例如,輸入裝置可以是滑鼠、鍵盤、觸控式螢幕設備或傳感設備等。
在一些實施例中,記憶體2003用於儲存執行本申請方案的程式碼2010,處理器2001可以執行記憶體2003中儲存的程式碼2010。也即是,網路設備2000可以通過處理器2001以及記憶體2003中的程式碼2010,來實現方法實施例提供的編碼方法或解碼方法。程式碼2010中可以包括一個或多個軟體模組。可選地,處理器2001自身也可以儲存執行本申請方案的程式碼或指令。
在具體實施例中,本申請實施例的網路設備2000可對應於上述各個方法實施例中的第一網路設備或第二網路設備,網路設備2000中的處理器2001讀取記憶體2003中的程式碼2010或處理器2001自身儲存的程式碼或指令,使圖11所示的網路設備2000能夠執行第一網路設備或第二網路設備所執行的全部或部分操作。
網路設備2000還可以對應於上述圖8和圖9所示的裝置,圖8和圖9所示的裝置中的每個功能模組採用網路設備2000的軟體實現。換句話說,圖8和圖9所示的裝置包括的功能模組為網路設備2000的處理器2001讀取記憶體2003中儲存的程式碼2010後生成的。例如,圖8和圖9中所涉及的獲取模組801和獲取模組901相當於通信介面2004,編碼模組802和解碼模組902相當於處理器2001和/或處理器2005。
其中,圖2和圖7所示的方法的各步驟通過網路設備2000的處理器中的硬體的集成邏輯電路或者軟體形式的指令完成。結合本申請實施例所公開的方法的步驟可以直接體現為硬體處理器執行完成,或者用處理器中的硬體及軟體模組組合執行完成。軟體模組可以位於隨機記憶體,快閃記憶體、唯讀記憶體,可程式設計唯讀記憶體或者電可讀寫可程式設計記憶體、寄存器等本領域成熟的儲存介質中。該儲存介質位於記憶體,處理器讀取記憶體中的資訊,結合其硬體完成上述方法的步驟,為避免重複,這裡不再詳細描述。
參見圖12,圖12示出了本申請另一個示例性實施例提供的網路設備2100的結構示意圖。圖12所示的網路設備2100用於執行上述圖2和圖7所示的方法所涉及的全部或部分操作。該網路設備2100例如是交換機、路由器等,該網路設備2100可以由一般性的匯流排體系結構來實現。
如圖12所示,網路設備2100包括:主控板2110和介面板2130。
主控板也稱為主處理單元(main processing unit,MPU)或路由處理卡(route processor card),主控板2110用於對網路設備2100中各個元件的控制和管理,包括路由計算、設備管理、設備維護、協定處理功能。主控板2110包括:中央處理器2111和記憶體2112。
介面板2130也稱為線路介面單元卡(line processing unit,LPU)、線卡(line card)或業務板。介面板2130用於提供各種業務介面並實現資料包的轉發。業務介面包括而不限於乙太網介面、POS(packet over SONET/SDH)介面等,乙太網介面例如是靈活乙太網業務介面(flexible ethernet clients,FlexE Clients)。介面板2130包括:中央處理器2131網路處理器2132、轉發表項記憶體2134和物理介面卡(physical interface card,PIC)2133。
介面板2130上的中央處理器2131用於對介面板2130進行控制管理並與主控板2110上的中央處理器2111進行通信。
網路處理器2132用於實現報文的發送處理。網路處理器2132的形態可以是轉發晶片。轉發晶片可以是網路處理器(network processor,NP)。在一些實施例中,轉發晶片可以通過專用積體電路(application-specific integrated circuit,ASIC)或現場可程式設計閘陣列(field programmable gate array,FPGA)實現。具體而言,網路處理器2132用於基於轉發表項記憶體2134保存的轉發表轉發接收到的報文,如果報文的目的地址為網路設備2100的位址,則將該報文上送至CPU(如中央處理器2131)處理;如果報文的目的地址不是網路設備2100的位址,則根據該目的地址從轉發表中查找到該目的地址對應的下一跳和出介面,將該報文轉發到該目的地址對應的出介面。其中,上行報文的處理可以包括:報文入介面的處理,轉發表查找;下行報文的處理可以包括:轉發表查找等等。在一些實施例中,中央處理器也可執行轉發晶片的功能,比如基於通用CPU實現軟體轉發,從而介面板中不需要轉發晶片。
物理介面卡2133用於實現實體層的對接功能,原始的流量由此進入介面板2130,以及處理後的報文從該物理介面卡2133發出。物理介面卡2133也稱為子卡,可安裝在介面板2130上,負責將光電信號轉換為報文並對報文進行合法性檢查後轉發給網路處理器2132處理。在一些實施例中,中央處理器2131也可執行網路處理器2132的功能,比如基於通用CPU實現軟體轉發,從而物理介面卡2133中不需要網路處理器2132。
可選地,網路設備2100包括多個介面板,例如網路設備2100還包括介面板2140,介面板2140包括:中央處理器2141、網路處理器2142、轉發表項記憶體2144和物理介面卡2143。介面板2140中各部件的功能和實現方式與介面板2130相同或相似,在此不再贅述。
可選地,網路設備2100還包括交換網板2120。交換網板2120也可以稱為交換網板單元(switch fabric unit,SFU)。在網路設備有多個介面板的情況下,交換網板2120用於完成各介面板之間的資料交換。例如,介面板2130和介面板2140之間可以通過交換網板2120通信。
主控板2110和介面板耦合。例如。主控板2110、介面板2130和介面板2140,以及交換網板2120之間通過系統匯流排與系統背板相連實現互通。在一種可能的實現方式中,主控板2110和介面板2130及介面板2140之間建立進程間通信協定(inter-process communication,IPC)通道,主控板2110和介面板2130及介面板2140之間通過IPC通道進行通信。
在邏輯上,網路設備2100包括控制面和轉發面,控制面包括主控板2110和中央處理器2111,轉發面包括執行轉發的各個元件,比如轉發表項記憶體2134、物理介面卡2133和網路處理器2132。控制面執行路由器、生成轉發表、處理信令和協定報文、配置與維護網路設備的狀態等功能,控制面將生成的轉發表下發給轉發面,在轉發面,網路處理器2132基於控制面下發的轉發表對物理介面卡2133收到的報文查表轉發。控制面下發的轉發表可以保存在轉發表項記憶體2134中。在有些實施例中,控制面和轉發面可以完全分離,不在同一網路設備上。
值得說明的是,主控板可能有一塊或多塊,有多塊的時候可以包括主用主控板和備用主控板。介面板可能有一塊或多塊,網路設備的資料處理能力越強,提供的介面板越多。介面板上的物理介面卡也可以有一塊或多塊。交換網板可能沒有,也可能有一塊或多塊,有多塊的時候可以共同實現負荷分擔冗餘備份。在集中式轉發架構下,網路設備可以不需要交換網板,介面板承擔整個系統的業務資料的處理功能。在分散式轉發架構下,網路設備可以有至少一塊交換網板,通過交換網板實現多塊介面板之間的資料交換,提供大容量的資料交換和處理能力。所以,分散式架構的網路設備的資料接入和處理能力要大於集中式架構的網路設備。可選地,網路設備的形態也可以是只有一塊板卡,即沒有交換網板,介面板和主控板的功能集成在該一塊板卡上,此時介面板上的中央處理器和主控板上的中央處理器在該一塊板卡上可以合併為一個中央處理器,執行兩者疊加後的功能,這種形態網路設備的資料交換和處理能力較低(例如,低端交換機或路由器等網路設備)。具體採用哪種架構,取決於具體的組網部署場景,此處不做任何限定。
在具體實施例中,網路設備2100對應於上述圖8和圖9所示的裝置。在一些實施例中,圖8和圖9所示的裝置中的獲取模組801和獲取模組901相當於網路設備2100中的物理介面卡2133或物理介面卡2143。圖8和圖9所示的裝置中的編碼模組802和解碼模組902相當於網路設備2100中的中央處理器2111、網路處理器2132和網路處理器2142中的至少一個。
基於上述圖10、圖11及圖12所示的網路設備,本申請實施例還提供了一種通信系統,該系統包括:第一網路設備及第二網路設備。可選的,第一網路設備為圖10所示的網路設備1500或圖11所示的網路設備2000或圖12所示的網路設備2100,第二網路設備為圖10所示的網路設備1500或圖11所示的網路設備2000或圖12所示的網路設備2100。
第一網路設備及第二網路設備所執行的方法可參見上述圖1、圖2和圖7所示實施例的相關描述,此處不再加以贅述。
應理解的是,上述處理器可以是中央處理器(central processing unit,CPU),還可以是其他通用處理器、數位訊號處理器(digital signal processing,DSP)、專用積體電路(application specific integrated circuit ,ASIC)、現場可程式設計閘陣列(field-programmable gate array,FPGA)或者其他可程式設計邏輯器件、分立門或者電晶體邏輯器件、分立硬體元件等。通用處理器可以是微處理器或者是任何常規的處理器等。值得說明的是,處理器可以是支援進階精簡指令集機器(advanced RISC machines,ARM)架構的處理器。
進一步地,在一種可選的實施例中,上述記憶體可以包括唯讀記憶體和隨機存取記憶體,並向處理器提供指令和資料。記憶體還可以包括非易失性隨機存取記憶體。例如,記憶體還可以存放裝置類型的資訊。
該記憶體可以是易失性記憶體或非易失性記憶體,或可包括易失性和非易失性記憶體兩者。其中,非易失性記憶體可以是唯讀記憶體(read-only memory,ROM)、可程式設計唯讀記憶體(programmable ROM,PROM)、可擦除可程式設計唯讀記憶體(erasable PROM,EPROM)、電可擦除可程式設計唯讀記憶體(electrically EPROM,EEPROM)或快閃記憶體。易失性記憶體可以是隨機存取記憶體(random access memory,RAM),其用作外部快取記憶體。通過示例性但不是限制性說明,許多形式的RAM可用。例如,靜態隨機存取記憶體(static RAM,SRAM)、動態隨機存取記憶體(dynamic random access memory,DRAM)、同步動態隨機存取記憶體(synchronous DRAM,SDRAM)、雙倍資料速率同步動態隨機存取記憶體(double data date SDRAM,DDR SDRAM)、增強型同步動態隨機存取記憶體(enhanced SDRAM,ESDRAM)、同步連接動態隨機存取記憶體(synchlink DRAM,SLDRAM)和直接記憶體匯流排隨機存取記憶體(direct rambus RAM,DR RAM)。
還提供了一種電腦可讀儲存介質,儲存介質中儲存有至少一條程式指令或代碼,所述程式指令或代碼由處理器載入並執行時以使電腦實現圖2中的編碼方法或者圖7中的解碼方法。
本申請提供了一種電腦程式(產品),當電腦程式被電腦執行時,可以使得處理器或電腦執行上述方法實施例中對應的各個步驟和/或流程。
提供了一種晶片,包括處理器,用於從記憶體中調用並運行所述記憶體中儲存的指令,使得安裝有所述晶片的通信設備執行上述各方面中的方法。
提供另一種晶片,包括:輸入介面、輸出介面、處理器和記憶體,所述輸入介面、輸出介面、所述處理器以及所述記憶體之間通過內部連接通路相連,所述處理器用於執行所述記憶體中的代碼,當所述代碼被執行時,處理器用於執行上述各方面中的方法。
還提供了一種設備,該設備包括上述晶片。可選地,該設備為網路設備。示例性地,該設備為路由器或交換機或伺服器。
在上述實施例中,可以全部或部分地通過軟體、硬體、固件或者其任意組合來實現。當使用軟體實現時,可以全部或部分地以電腦程式產品的形式實現。所述電腦程式產品包括一個或多個電腦指令。在電腦上載入和執行所述電腦程式指令時,全部或部分地產生按照本申請所述的流程或功能。所述電腦可以是通用電腦、專用電腦、電腦網路、或者其他可程式設計裝置。所述電腦指令可以儲存在電腦可讀儲存介質中,或者從一個電腦可讀儲存介質向另一個電腦可讀儲存介質傳輸,例如,所述電腦指令可以從一個網站網站、電腦、伺服器或資料中心通過有線(例如同軸電纜、光纖、數位用戶線路)或無線(例如紅外、無線、微波等)方式向另一個網站網站、電腦、伺服器或資料中心進行傳輸。所述電腦可讀儲存介質可以是電腦能夠存取的任何可用介質或者是包含一個或多個可用介質集成的伺服器、資料中心等資料存放裝置。所述可用介質可以是磁性介質,(例如,軟碟、硬碟、磁帶)、光介質(例如,DVD)、或者半導體介質(例如固態硬碟(solid state disk,SSD)等。
以上所述的具體實施方式,對本申請的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本申請的具體實施方式而已,並不用於限定本申請的保護範圍,凡在本申請的技術方案的基礎之上,所做的任何修改、等同替換、改進等,均應包括在本申請的保護範圍之內。
本領域普通技術人員可以意識到,結合本文中所公開的實施例中描述的各方法步驟和模組,能夠以軟體、硬體、固件或者其任意組合來實現,為了清楚地說明硬體和軟體的可互換性,在上述說明中已經按照功能一般性地描述了各實施例的步驟及組成。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。本領域普通技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本申請的範圍。
本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬體來完成,也可以通過程式來指令相關的硬體完成,該程式可以儲存於一種電腦可讀儲存介質中,上述提到的儲存介質可以是唯讀記憶體,磁片或光碟等。
當使用軟體實現時,可以全部或部分地以電腦程式產品的形式實現。該電腦程式產品包括一個或多個電腦程式指令。作為示例,本申請實施例的方法可以在機器可執行指令的上下文中被描述,機器可執行指令諸如包括在目標的真實或者虛擬處理器上的器件中執行的程式模組中。一般而言,程式模組包括常式、程式、庫、物件、類、元件、資料結構等,其執行特定的任務或者實現特定的抽象資料結構。在各實施例中,程式模組的功能可以在所描述的程式模組之間合併或者分割。用於程式模組的機器可執行指令可以在本地或者分散式設備內執行。在分散式設備中,程式模組可以位於本地和遠端存放介質二者中。
用於實現本申請實施例的方法的電腦程式代碼可以用一種或多種程式設計語言編寫。這些電腦程式代碼可以提供給通用電腦、專用電腦或其他可程式設計的資料處理裝置的處理器,使得程式碼在被電腦或其他可程式設計的資料處理裝置執行的時候,引起在流程圖和/或框圖中規定的功能/操作被實施。程式碼可以完全在電腦上、部分在電腦上、作為獨立的套裝軟體、部分在電腦上且部分在遠端電腦上或完全在遠端電腦或伺服器上執行。
在本申請實施例的上下文中,電腦程式代碼或者相關資料可以由任意適當載體承載,以使得設備、裝置或者處理器能夠執行上文描述的各種處理和操作。載體的示例包括信號、電腦可讀介質等等。
信號的示例可以包括電、光、無線電、聲音或其它形式的傳播信號,諸如載波、紅外信號等。
機器可讀介質可以是包含或儲存用於或有關於指令執行系統、裝置或設備的程式的任何有形介質。機器可讀介質可以是機器可讀信號介質或機器可讀儲存介質。機器可讀介質可以包括但不限於電子的、磁的、光學的、電磁的、紅外的或半導體系統、裝置或設備,或其任意合適的組合。機器可讀儲存介質的更詳細示例包括帶有一根或多根導線的電氣連接、可擕式電腦磁片、硬碟、隨機儲存存取器(RAM)、唯讀記憶體(ROM)、可擦除可程式設計唯讀記憶體(EPROM或快閃記憶體)、光存放裝置、磁存放裝置,或其任意合適的組合。
所屬領域的技術人員可以清楚地瞭解到,為了描述的方便和簡潔,上述描述的系統、設備和模組的具體工作過程,可以參見前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統、設備和方法,可以通過其它的方式實現。例如,以上所描述的設備實施例僅僅是示意性的,例如,該模組的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個模組或元件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另外,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些介面、設備或模組的間接耦合或通信連接,也可以是電的,機械的或其它的形式連接。
該作為分離部件說明的模組可以是或者也可以不是物理上分開的,作為模組顯示的部件可以是或者也可以不是物理模組,即可以位於一個地方,或者也可以分佈到多個網路模組上。可以根據實際的需要選擇其中的部分或者全部模組來實現本申請實施例方案的目的。
另外,在本申請各個實施例中的各功能模組可以集成在一個處理模組中,也可以是各個模組單獨物理存在,也可以是兩個或兩個以上模組集成在一個模組中。上述集成的模組既可以採用硬體的形式實現,也可以採用軟體功能模組的形式實現。
該集成的模組如果以軟體功能模組的形式實現並作為獨立的產品銷售或使用時,可以儲存在一個電腦可讀儲存介質中。基於這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分,或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該電腦軟體產品儲存在一個儲存介質中,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本申請各個實施例中方法的全部或部分步驟。而前述的儲存介質包括:隨身碟、移動硬碟、唯讀記憶體(read-only memory,ROM)、隨機存取記憶體(random access memory,RAM)、磁碟或者光碟等各種可以儲存程式碼的介質。
本申請中術語“第一”“第二”等字樣用於對作用和功能基本相同的相同項或相似項進行區分,應理解,“第一”、“第二”、“第n”之間不具有邏輯或時序上的依賴關係,也不對數量和執行順序進行限定。還應理解,儘管以下描述使用術語第一、第二等來描述各種元素,但這些元素不應受術語的限制。這些術語只是用於將一元素與另一元素區別分開。例如,在不脫離各種所述示例的範圍的情況下,第一網路設備可以被稱為第二網路設備,並且類似地,第二網路設備可以被稱為第一網路設備。第一網路設備和第二網路設備都可以是任一類型的網路設備,並且在某些情況下,可以是單獨且不同的網路設備。
還應理解,在本申請的各個實施例中,各個過程的序號的大小並不意味著執行順序的先後,各過程的執行順序應以其功能和內在邏輯確定,而不應對本申請實施例的實施過程構成任何限定。
本申請中術語“至少一個”的含義是指一個或多個,本申請中術語“多個”的含義是指兩個或兩個以上,例如,多個第二報文是指兩個或兩個以上的第二報文。本文中術語“系統”和“網路”經常可互換使用。
應理解,在本文中對各種所述示例的描述中所使用的術語只是為了描述特定示例,而並非旨在進行限制。如在對各種所述示例的描述和所附請求項書中所使用的那樣,單數形式“一個(“a”,“an”)”和“該”旨在也包括複數形式,除非上下文另外明確地指示。
還應理解,術語“包括”(也稱“includes”、“including”、“comprises”和/或“comprising”)當在本說明書中使用時指定存在所陳述的特徵、整數、步驟、操作、元素、和/或部件,但是並不排除存在或添加一個或多個其他特徵、整數、步驟、操作、元素、部件、和/或其分組。
還應理解,術語“若”和“如果”可被解釋為意指“當...時”(“when”或“upon”)或“回應於確定”或“回應於檢測到”。類似地,根據上下文,短語“若確定...”或“若檢測到[所陳述的條件或事件]”可被解釋為意指“在確定...時”或“回應於確定...”或“在檢測到[所陳述的條件或事件]時”或“回應於檢測到[所陳述的條件或事件]”。
應理解,根據A確定B並不意味著僅僅根據A確定B,還可以根據A和/或其它資訊確定B。
還應理解,說明書通篇中提到的“一個實施例”、“一實施例”、“一種可能的實現方式”意味著與實施例或實現方式有關的特定特徵、結構或特性包括在本申請的至少一個實施例中。因此,在整個說明書各處出現的“在一個實施例中”或“在一實施例中”、“一種可能的實現方式”未必一定指相同的實施例。此外,這些特定的特徵、結構或特性可以任意適合的方式結合在一個或多個實施例中。
101:第一網路設備
102:晶片
103:第二網路設備
104:晶片
105:通道
201、202、701、702:步驟
801:獲取模組
802:第一編碼模組
803:第二編碼模組
804:發送模組
901:獲取模組
902:解碼模組
1500:網路設備
1501:收發器
1502:處理器
1503:記憶體
1504:匯流排
2000:網路設備處理器
2001、2005:處理器
2003:記憶體
2004:通信介面
2010:程式碼
2100:網路設備
2110:主控板
2111:中央處理器
2112:記憶體
2130:介面板
2131:中央處理器
2132:網路處理器
2134:轉發表項記憶體
2133:物理介面卡
2120:交換網板
2140:介面板
2141:中央處理器
2142:網路處理器
2144:轉發表項記憶體
2143:物理介面卡
圖1是本申請實施例提供的一種編碼方法和解碼方法的實施環境示意圖;
圖2是本申請實施例提供的一種編碼方法的流程圖;
圖3是本申請實施例提供的一種得到目標碼塊的過程示意圖;
圖4是本申請實施例提供的一種目標碼塊的結構示意圖;
圖5是本申請實施例提供的另一種目標碼塊的結構示意圖;
圖6是本申請實施例提供的另一種目標碼塊的結構示意圖;
圖7是本申請實施例提供的一種解碼方法的流程圖;
圖8是本申請實施例提供的一種編碼裝置的結構示意圖;
圖9是本申請實施例提供的一種解碼裝置的結構示意圖;
圖10是本申請實施例提供的一種網路設備的結構示意圖;
圖11是本申請實施例提供的另一種網路設備的結構示意圖;
圖12是本申請實施例提供的另一種網路設備的結構示意圖。
201、202:步驟
Claims (56)
- 一種編碼方法,其中,所述方法包括: 獲取2 n組碼流塊,任一組碼流塊包括控制塊和資料塊,所述n為大於1的整數; 對所述2 n組碼流塊進行第一編碼,得到目標碼塊,所述目標碼塊包括基於所述2 n組碼流塊的控制塊確定的類型和基於所述2 n組碼流塊的控制塊和資料塊確定的資料單元。
- 如請求項1所述的方法,其中,所述類型用於指示所述目標碼塊為資料碼塊; 所述資料單元基於所述2 n組碼流塊的順序對所述2 n組碼流塊的資料塊進行所述第一編碼得到。
- 如請求項1所述的方法,其中,所述類型用於指示所述目標碼塊為控制碼塊; 所述資料單元包括類型指示和碼塊內容,所述碼塊內容基於所述2 n組碼流塊的控制塊和資料塊確定的順序對所述2 n組碼流塊的資料塊進行所述第一編碼得到,所述類型指示基於所述2 n組碼流塊的控制塊得到,所述類型指示用於指示各組碼流塊的類型。
- 如請求項3所述的方法,其中,所述目標碼塊為錯誤碼塊,所述錯誤碼塊中包括用於標識錯誤的資料。
- 如請求項1-4任一所述的方法,其中,所述目標碼塊基於錯誤檢測結果對所述2 n組碼流塊進行處理得到,所述錯誤檢測結果基於所述2 n組碼流塊的控制塊和資料塊得到。
- 如請求項5所述的方法,其中,所述錯誤檢測結果包括所述2 n組碼流塊的內容順序錯誤或內容錯誤,所述目標碼塊基於所述2 n組碼流塊中內容順序正確且內容正確的碼流塊以及錯誤塊進行所述第一編碼得到,所述錯誤塊基於所述2 n組碼流塊中內容順序錯誤或內容錯誤的碼流塊得到。
- 如請求項1-6任一所述的方法,其中,所述控制塊包括m比特,所述資料塊包括8m比特,所述m為正整數。
- 如請求項7所述的方法,其中,所述n的取值為2,所述m的取值為8,所述目標碼塊為257比特。
- 如請求項1-8任一所述的方法,其中,所述2n組碼流塊均來自介質無關介面MII。
- 如請求項1-9任一所述的方法,其中,所述得到目標碼塊之後,還包括: 按照前向糾錯FEC碼型對所述目標碼塊進行第二編碼,得到第一資料; 發送所述第一資料。
- 一種解碼方法,其中,所述方法包括: 獲取目標碼塊,所述目標碼塊包括類型和資料單元; 根據所述目標碼塊的類型和資料單元,對所述目標碼塊進行第一解碼,得到2 n組碼流塊,任一組碼流塊包括基於所述類型和所述資料單元得到的控制塊和資料塊,所述n為大於1的整數。
- 如請求項11所述的方法,其中,所述類型用於指示所述目標碼塊為資料碼塊; 所述2 n組碼流塊中的第i組碼流塊包括的資料塊是基於對所述資料單元中與所述第i組碼流塊對應的8m長度的內容進行所述第一解碼得到的,所述m為正整數,所述i為大於等於1且小於等於2 n的整數或者所述i為大於等於0且小於等於2 n-1的整數。
- 如請求項11所述的方法,其中,所述類型用於指示所述目標碼塊為控制碼塊,所述資料單元包括類型指示和碼塊內容,所述類型指示包括2 n個比特,所述2 n個比特中的1個比特用於指示所述2 n組碼流塊中與所述比特對應的一組碼流塊的類型,所述碼塊內容包括2 n個比特組; 所述2 n組碼流塊中的第i組碼流塊包括的控制塊是基於所述類型、所述類型指示中與所述第i組碼流塊對應的比特和所述碼塊內容中與所述第i組碼流塊對應的比特組得到的,所述i為大於等於1且小於等於2 n的整數或者所述i為大於等於0且小於等於2 n-1的整數; 所述2 n組碼流塊中的第i組碼流塊包括的資料塊是基於所述類型指示中與所述第i組碼流塊對應的比特對所述碼塊內容中與所述第i組碼流塊對應的比特組進行所述第一解碼得到的。
- 如請求項13所述的方法,其中,所述2 n個比特組包括第一比特組和2 n-1個第二比特組,所述第一比特組包括的比特數量和所述第二比特組包括的比特數量不相同。
- 如請求項11所述的方法,其中,所述資料單元包括類型指示,所述類型和所述類型指示用於指示所述目標碼塊為錯誤碼塊; 所述2 n組碼流塊中每組碼流塊包括的控制塊為第一值,所述2 n組碼流塊中每組碼流塊包括的資料塊為第二值,所述第一值和所述第二值用於指示所述碼流塊為錯誤碼流塊。
- 如請求項11-15任一所述的方法,其中,所述獲取目標碼塊,包括: 接收第二資料,所述第二資料是基於採用前向糾錯FEC碼型編碼的第一資料獲得的; 對所述第二資料進行第二解碼獲取所述目標碼塊,所述第二解碼為糾錯處理。
- 如請求項16所述的方法,其中,所述目標碼塊是對所述第二資料進行糾錯但未成功糾錯所獲得的錯誤碼塊。
- 如請求項11-15任一所述的方法,其中,所述獲取目標碼塊,包括: 接收第二資料,所述第二資料是基於採用前向糾錯FEC碼型編碼的第一資料獲得的; 對所述第二資料進行第二解碼獲取所述目標碼塊,所述第二解碼為檢錯但不糾錯處理。
- 如請求項18所述的方法,其中,所述目標碼塊是從所述第二資料檢出錯誤但不糾錯所獲得的錯誤碼塊。
- 如請求項11-15任一所述的方法,其中,所述2n組碼流塊根據錯誤檢測結果以及所述目標碼塊的類型和資料單元對所述目標碼塊進行所述第一解碼得到,所述錯誤檢測結果基於所述目標碼塊的類型和資料單元得到。
- 如請求項20所述的方法,其中,所述錯誤檢測結果包括所述目標碼塊的內容順序錯誤或內容錯誤,所述2 n組碼流塊根據第二碼塊的類型和資料單元對所述第二碼塊進行所述第一解碼得到,所述第二碼塊是對所述目標碼塊進行轉換得到的且與所述目標碼塊比特數相同的碼塊。
- 如請求項20所述的方法,其中,所述錯誤檢測結果包括所述目標碼塊的內容順序錯誤或內容錯誤,所述2 n組碼流塊基於對2 n組第一碼流塊進行轉換得到,所述2 n組第一碼流塊基於所述目標碼塊的類型和資料單元對所述目標碼塊進行所述第一解碼得到。
- 如請求項11-22任一所述的方法,其中,所述控制塊包括m比特,所述資料塊包括8m比特,所述m為正整數。
- 如請求項23所述的方法,其中,所述n的取值為2,所述m的取值為8,所述目標碼塊為257比特。
- 如請求項11-24任一所述的方法,其中,所述2n組碼流塊均為介質無關介面MII格式。
- 一種編碼裝置,其中,所述裝置包括: 獲取模組,用於獲取2 n組碼流塊,任一組碼流塊包括控制塊和資料塊,所述n為大於1的整數; 第一編碼模組,用於對所述2 n組碼流塊進行第一編碼,得到目標碼塊,所述目標碼塊包括基於所述2 n組碼流塊的控制塊確定的類型和基於所述2 n組碼流塊的控制塊和資料塊確定的資料單元。
- 如請求項26所述的裝置,其中,所述類型用於指示所述目標碼塊為資料碼塊;所述資料單元基於所述2 n組碼流塊的順序對所述2 n組碼流塊的資料塊進行所述第一編碼得到。
- 如請求項26所述的裝置,其中,所述類型用於指示所述目標碼塊為控制碼塊;所述資料單元包括類型指示和碼塊內容,所述碼塊內容基於所述2 n組碼流塊的控制塊和資料塊確定的順序對所述2 n組碼流塊的資料塊進行所述第一編碼得到,所述類型指示基於所述2 n組碼流塊的控制塊得到,所述類型指示用於指示各組碼流塊的類型。
- 如請求項28所述的裝置,其中,所述目標碼塊為錯誤碼塊,所述錯誤碼塊中包括用於標識錯誤的資料。
- 如請求項26-29任一所述的裝置,其中,所述目標碼塊基於錯誤檢測結果對所述2 n組碼流塊進行處理得到,所述錯誤檢測結果基於所述2 n組碼流塊的控制塊和資料塊得到。
- 如請求項30所述的裝置,其中,所述錯誤檢測結果包括所述2 n組碼流塊的內容順序錯誤或內容錯誤,所述目標碼塊基於所述2 n組碼流塊中內容順序正確且內容正確的碼流塊以及錯誤塊進行所述第一編碼得到,所述錯誤塊基於所述2 n組碼流塊中內容順序錯誤或內容錯誤的碼流塊得到。
- 如請求項26-31任一所述的裝置,其中,所述控制塊包括m比特,所述資料塊包括8m比特,所述m為正整數。
- 如請求項31所述的裝置,其中,所述n的取值為2,所述m的取值為8,所述目標碼塊為257比特。
- 如請求項26-33任一所述的裝置,其中,所述2 n組碼流塊均來自介質無關介面MII。
- 如請求項26-34任一所述的裝置,其中,所述裝置還包括: 第二編碼模組,用於按照前向糾錯FEC碼型對所述目標碼塊進行第二編碼,得到第一資料; 發送模組,用於發送所述第一資料。
- 一種解碼裝置,其中,所述裝置包括: 獲取模組,用於獲取目標碼塊,所述目標碼塊包括類型和資料單元; 解碼模組,用於根據所述目標碼塊的類型和資料單元,對所述目標碼塊進行第一解碼,得到2 n組碼流塊,任一組碼流塊包括基於所述類型和所述資料單元得到的控制塊和資料塊,所述n為大於1的整數。
- 如請求項36所述的裝置,其中,所述類型用於指示所述目標碼塊為資料碼塊;所述2 n組碼流塊中的第i組碼流塊包括的資料塊是基於對所述資料單元中與所述第i組碼流塊對應的8m長度的內容進行所述第一解碼得到的,所述m為正整數,所述i為大於等於1且小於等於2 n的整數或者所述i為大於等於0且小於等於2 n-1的整數。
- 如請求項36所述的裝置,其中,所述類型用於指示所述目標碼塊為控制碼塊,所述資料單元包括類型指示和碼塊內容,所述類型指示包括2 n個比特,所述2 n個比特中的1個比特用於指示所述2 n組碼流塊中與所述比特對應的一組碼流塊的類型,所述碼塊內容包括2 n個比特組;所述2 n組碼流塊中的第i組碼流塊包括的控制塊是基於所述類型、所述類型指示中與所述第i組碼流塊對應的比特和所述碼塊內容中與所述第i組碼流塊對應的比特組得到的,所述i為大於等於1且小於等於2 n的整數或者所述i為大於等於0且小於等於2 n-1的整數;所述2 n組碼流塊中的第i組碼流塊包括的資料塊是基於所述類型指示中與所述第i組碼流塊對應的比特對所述碼塊內容中與所述第i組碼流塊對應的比特組進行所述第一解碼得到的。
- 如請求項38所述的裝置,其中,所述2 n個比特組包括第一比特組和2 n-1個第二比特組,所述第一比特組包括的比特數量和所述第二比特組包括的比特數量不相同。
- 如請求項36所述的裝置,其中,所述資料單元包括類型指示,所述類型和所述類型指示用於指示所述目標碼塊為錯誤碼塊;所述2 n組碼流塊中每組碼流塊包括的控制塊為第一值,所述2 n組碼流塊中每組碼流塊包括的資料塊為第二值,所述第一值和所述第二值用於指示所述碼流塊為錯誤碼流塊。
- 如請求項36-40任一所述的裝置,其中,所述獲取模組,用於接收第二資料,所述第二資料是基於採用前向糾錯FEC碼型編碼的第一資料獲得的;對所述第二資料進行第二解碼獲取所述目標碼塊,所述第二解碼為糾錯處理。
- 如請求項41所述的裝置,其中,所述目標碼塊是對所述第二資料進行糾錯但未成功糾錯所獲得的錯誤碼塊。
- 如請求項36-40任一所述的裝置,其中,所述獲取模組,用於接收第二資料,所述第二資料是基於採用前向糾錯FEC碼型編碼的第一資料獲得的;對所述第二資料進行第二解碼獲取所述目標碼塊,所述第二解碼為檢錯但不糾錯處理。
- 如請求項43所述的裝置,其中,所述目標碼塊是從所述第二資料檢出錯誤但不糾錯所獲得的錯誤碼塊。
- 如請求項36-40任一所述的裝置,其中,所述2 n組碼流塊根據錯誤檢測結果以及所述目標碼塊的類型和資料單元對所述目標碼塊進行所述第一解碼得到,所述錯誤檢測結果基於所述目標碼塊的類型和資料單元得到。
- 如請求項45所述的裝置,其中,所述錯誤檢測結果包括所述目標碼塊的內容順序錯誤或內容錯誤,所述2 n組碼流塊根據第二碼塊的類型和資料單元對所述第二碼塊進行所述第一解碼得到,所述第二碼塊是對所述目標碼塊進行轉換得到的且與所述目標碼塊比特數相同的碼塊。
- 如請求項45所述的裝置,其中,所述錯誤檢測結果包括所述目標碼塊的內容順序錯誤或內容錯誤,所述2 n組碼流塊基於對2 n組第一碼流塊進行轉換得到,所述2 n組第一碼流塊基於所述目標碼塊的類型和資料單元對所述目標碼塊進行所述第一解碼得到。
- 如請求項36-47任一所述的裝置,其中,所述控制塊包括m比特,所述資料塊包括8m比特,所述m為正整數。
- 如請求項48所述的裝置,其中,所述n的取值為2,所述m的取值為8,所述目標碼塊為257比特。
- 如請求項36-49任一所述的裝置,其中,所述2n組碼流塊均為介質無關介面MII格式。
- 一種網路設備,其中,所述網路設備包括:處理器,所述處理器與記憶體耦合,所述記憶體中儲存有至少一條程式指令或代碼,所述至少一條程式指令或代碼由所述處理器載入並執行,以使所述網路設備實現如請求項1-25中任一所述的方法。
- 一種通信系統,其中,所述系統包括第一網路設備和第二網路設備,所述第一網路設備用於執行如請求項1-10中任一所述的方法,所述第二網路設備用於執行如請求項11-25中任一所述的方法。
- 一種電腦可讀儲存介質,其中,所述電腦可讀儲存介質中儲存有至少一條程式指令或代碼,所述程式指令或代碼由處理器載入並執行時以使電腦實現如請求項1-25中任一所述的方法。
- 一種電腦程式產品,其中,所述電腦程式產品包括電腦程式代碼,當所述電腦程式代碼被電腦運行時,使得所述電腦實現如請求項1-25中任一所述的方法。
- 一種晶片,其中,所述晶片包括處理器,所述處理器用於從記憶體中調用並運行所述記憶體中儲存的指令,使得安裝有所述晶片的通信設備執行如請求項1-25中任一所述的方法。
- 一種晶片,其中,所述晶片包括:輸入介面、輸出介面、處理器和記憶體,所述輸入介面、所述輸出介面、所述處理器以及所述記憶體之間通過內部連接通路相連,所述處理器用於執行所述記憶體中的代碼,當所述代碼被執行時,所述處理器用於執行如請求項1-25中任一所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210005434.5 | 2022-01-05 | ||
CN202210005434 | 2022-01-05 | ||
CN202210114840.5 | 2022-01-30 | ||
CN202210114840.5A CN116455516A (zh) | 2022-01-05 | 2022-01-30 | 编码方法、解码方法、装置、设备、***及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202333459A true TW202333459A (zh) | 2023-08-16 |
Family
ID=87073129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111145792A TW202333459A (zh) | 2022-01-05 | 2022-11-30 | 編碼方法、解碼方法、裝置、設備、系統及可讀儲存介質 |
Country Status (2)
Country | Link |
---|---|
TW (1) | TW202333459A (zh) |
WO (1) | WO2023131004A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108400838B (zh) * | 2017-02-06 | 2021-05-18 | 华为技术有限公司 | 数据处理方法及设备 |
US20180287752A1 (en) * | 2017-03-29 | 2018-10-04 | Kt Corporation | Method and apparatus for configuring transport block to transmit data |
CN108809499A (zh) * | 2017-05-05 | 2018-11-13 | 华为技术有限公司 | 通信方法和装置 |
CN110971531B (zh) * | 2018-09-28 | 2021-09-21 | 华为技术有限公司 | 一种数据传输方法、通信设备及存储介质 |
CN112468259B (zh) * | 2019-09-09 | 2023-12-15 | 华为技术有限公司 | 一种通信方法、设备及存储介质 |
-
2022
- 2022-11-30 TW TW111145792A patent/TW202333459A/zh unknown
- 2022-12-27 WO PCT/CN2022/142363 patent/WO2023131004A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023131004A1 (zh) | 2023-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11296807B2 (en) | Techniques to operate a time division multiplexing(TDM) media access control (MAC) | |
CN109428690B (zh) | 以太网络的连线方法及以太网络装置 | |
US20180091332A1 (en) | Hybrid forward error correction and replay technique for low latency | |
WO2022062946A1 (zh) | 一种数据编码方法、数据解码方法及通信装置 | |
CN116455516A (zh) | 编码方法、解码方法、装置、设备、***及可读存储介质 | |
WO2023116229A1 (zh) | 生成、处理以太帧的方法、装置、设备、***及存储介质 | |
WO2023131004A1 (zh) | 编码方法、解码方法、装置、设备、***及可读存储介质 | |
US11868209B2 (en) | Method and system for sequencing data checks in a packet | |
WO2023131003A1 (zh) | 编码方法、解码方法、装置、设备、***及可读存储介质 | |
CN116455517A (zh) | 编码方法、解码方法、装置、设备、***及可读存储介质 | |
WO2022001166A1 (zh) | 接口、电子设备和通信*** | |
WO2024001874A1 (zh) | 模式协商方法、装置、设备、***及计算机可读存储介质 | |
JP7192195B2 (ja) | コードブロックストリームの受信方法、コードブロックストリームの送信方法、および通信装置 | |
JP7346662B2 (ja) | データ送信方法および転送デバイス | |
WO2022002272A1 (zh) | 按需译码方法及装置 | |
US20240089020A1 (en) | Data transmission method, apparatus, and system, and computer-readable storage medium | |
WO2023083175A1 (zh) | 报文传输方法及通信装置 | |
WO2023015863A1 (zh) | 数据传输的方法、装置、设备、***及可读存储介质 | |
WO2023165412A1 (zh) | 数据处理方法、装置、设备、***及计算机可读存储介质 | |
WO2023141777A1 (zh) | 通信方法及网络设备 | |
WO2023071309A1 (zh) | 数据传输的方法、装置、设备、***及可读存储介质 | |
CN118041488A (zh) | 数据传输方法、装置、***及计算机可读存储介质 | |
KR100670041B1 (ko) | 고속 이더넷 수신 데이터 오류 정정 회로 |