TW201320619A - 線性碼之功率最佳化解碼 - Google Patents

線性碼之功率最佳化解碼 Download PDF

Info

Publication number
TW201320619A
TW201320619A TW101134795A TW101134795A TW201320619A TW 201320619 A TW201320619 A TW 201320619A TW 101134795 A TW101134795 A TW 101134795A TW 101134795 A TW101134795 A TW 101134795A TW 201320619 A TW201320619 A TW 201320619A
Authority
TW
Taiwan
Prior art keywords
codeword
input
data
ecc
decoding
Prior art date
Application number
TW101134795A
Other languages
English (en)
Other versions
TWI497919B (zh
Inventor
Micha Anholt
Naftali Sommer
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of TW201320619A publication Critical patent/TW201320619A/zh
Application granted granted Critical
Publication of TWI497919B publication Critical patent/TWI497919B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3776Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using a re-encoding step during the decoding process
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

一種方法包括接受一輸入碼字從而藉由一硬體實施之錯誤校正碼(ECC)解碼器來解碼,該輸入碼字藉由用一ECC對資料編碼而產生。該輸入碼字經預處理以產生一預處理碼字,使得在解碼該預處理碼字時發生於該硬體實施之ECC解碼器中的位元變遷之一第一數目小於在解碼該輸入碼字中將發生於該ECC解碼器中的該等位元變遷之一第二數目。使用該ECC解碼器解碼該預處理碼字,且自該經解碼之預處理碼字復原該資料。

Description

線性碼之功率最佳化解碼
本發明大體上係關於錯誤校正,且特定而言係關於用於減小錯誤校正碼(ECC)解碼器之功率消耗的方法及系統。
錯誤校正碼(ECC)被用於多種系統及應用中從而保護資料不受錯誤影響。許多風行ECC方案使用線性碼,諸如漢明(Hamming)碼、李德-所羅門(Reed-Solomon)碼、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)碼、低密度同位檢查(LDPC)碼及渦輪碼。一些ECC解碼方案使用硬式解碼,而其他解碼方案對諸如對數似然比(LLR)之軟式解碼度量起作用。
本文中所描述的本發明之一實施例提供一種方法,該方法包括接受一輸入碼字從而藉由一硬體實施之ECC解碼器來解碼,該輸入碼字藉由用一錯誤校正碼(ECC)對資料編碼而產生。該輸入碼字經預處理以產生一預處理碼字,使得在解碼該預處理碼字時發生於該硬體實施之ECC解碼器中的位元變遷(transition)之一第一數目小於在解碼該輸入碼字中將發生於該ECC解碼器中的該等位元變遷之一第二數目。使用該ECC解碼器解碼該預處理碼字,且自該經解碼之預處理碼字復原該資料。
在一些實施例中,對該輸入碼字進行預處理包括藉由一全零碼字替換該輸入碼字,且解碼該預處理碼字包括使該 ECC解碼器收斂至該輸入碼字中的一錯誤型樣。藉由該全零碼字替換該輸入碼字通常包括保持該輸入碼字之各別位元的可靠度值,及將該全零碼字及該等可靠度值提供至該ECC解碼器。
在一實施例中,藉由一組檢查方程式來定義該ECC,該ECC解碼器包括分別對應於該等檢查方程式並與對應於該預處理碼字之各別位元的位元節點交換訊息的檢查節點,且使該ECC解碼器收斂至該錯誤型樣包括組態每一檢查節點以:在一各別檢查方程式之一評估等於一各別校正子(syndrome)時產生使一可靠度增加或保持參與該檢查方程式之位元的一正負號之第一訊息,且在該檢查方程式之該評估與該各別校正子不同時產生減小該可靠度或使參與該各別檢查方程式之該等位元的該正負號反轉的第二訊息。
在一些實施例中,復原該資料包括演算該經解碼之預處理碼字與該輸入碼字之一硬位元估計之間的一逐位元互斥或(XOR)。在一實施例中,該輸入碼字包括一資料部分及一冗餘部分,對該輸入碼字進行預處理包括藉由該ECC對該資料部分編碼以產生一編碼結果,且復原該資料包括演算該編碼結果與該經解碼之預處理碼字之間的一逐位元互斥或。
在一所揭示實施例中,接受該輸入碼字包括接受對應於該輸入碼字之各別位元的多個軟式解碼度量,對該輸入碼字進行預處理包括對該等軟式解碼度量進行預處理,且解碼該預處理碼字包括將一軟式解碼程序應用至該等經預處 理之軟式解碼度量。對該輸入碼字進行預處理可包括使用一正負號-量值格式來表示該等軟式解碼度量。
在一實施例中,該方法包括除該輸入碼字外亦接受針對該輸入碼字計算之循環冗餘檢查(CRC)位元,及使用該等CRC位元來驗證該復原資料。在一實例實施例中,復原該資料包括演算該經解碼之預處理碼字與一固定資料型樣之間的一逐位元互斥或,且驗證該資料包括:關於該固定資料型樣計算用於產生該等CRC位元的一線性碼之一第一校正子;關於該復原資料計算該線性碼的一第二校正子;及比較該第二校正子與該第一校正子。
在一實施例中,復原該資料包括演算該經解碼之預處理碼字與一固定資料型樣之間的一逐位元互斥或,且驗證該資料包括修改該固定資料型樣,使得當資料經正確解碼時,關於該復原資料應用該CRC將為零。
在一些實施例中,接受該輸入碼字包括經由一通信頻道接收該輸入碼字。在替代性實施例中,接受該輸入碼字包括自一記憶體讀取該輸入碼字。
根據本發明之一實施例,另外提供一種裝置,該裝置包括一硬體實施之錯誤校正碼(ECC)解碼器及輔助電路。該硬體實施之ECC解碼器經組態以解碼ECC碼字。該輔助電路經組態以:接受一輸入碼字從而對該輸入碼字進行預處理以產生一預處理碼字,使得在解碼該預處理碼字時發生於該硬體實施之ECC解碼器中的位元變遷之一第一數目小於在解碼該輸入碼字中將發生於該ECC解碼器中的該等位 元變遷之一第二數目,該輸入碼字藉由用該ECC對資料編碼而產生;使用該ECC解碼器解碼該預處理碼字;且自該經解碼之預處理碼字復原該資料。
自與圖式一起進行的本發明之實施例之以下[實施方式]將更充分地理解本發明。
概述
使功率消耗最小化為涉及ECC解碼之許多應用中的首要考慮。當以硬體來實施ECC解碼器時,解碼器功率消耗隨著在解碼程序期間發生於硬體中之位元變遷的數目而顯著地發生變化。例如自記憶體讀出之資料中或者算術或邏輯計算中的「0」與「1」之間的大量位元變遷通常將使功率消耗增加,且反之亦然。
本文中所描述的本發明之實施例提供改良之ECC解碼器及關聯方法。所揭示技術減小在解碼程序期間發生於解碼器硬體中的位元變遷之數目,且因此減小解碼器功率消耗。
在一些實施例中,輸入碼字在藉由硬體實施之ECC解碼器解碼之前藉由輔助電路進行預處理。預處理方案減小在解碼預處理碼字而非原始輸入碼字時發生於解碼器中的位元變遷之數目。本文中描述若干實例預處理方案。
通常,ECC解碼器進行對軟式解碼度量(例如,對數似然比-LLR)起作用的軟式解碼程序,該等軟式解碼度量針對輸入碼字之各別位元來計算。在此等實施例中,將輸入 碼字提供至輔助電路作為軟式解碼量度量之序列。然而,或者,所揭示技術亦可供硬式ECC解碼器使用,在該狀況下,將輸入碼字提供至輔助電路作為硬位元之序列。通常,儘管不必要,但ECC為系統的,在該狀況下,輸入碼字包含:包含資料位元之資料部分,及包含冗餘位元的冗餘部分。
在一些實施例中,將解碼輸入碼字之問題變換為輸入碼字之位元值皆為邏輯「0」但位元之可靠度相對於原始輸入碼字保持不變的等效問題。解碼器經組態以收斂至錯誤型樣而非資料位元。在解碼程序完成之後,輔助電路演算解碼器輸出與輸入碼字之各別硬位元估計之間的逐位元互斥或,以產生輸入碼字的解碼結果。
在替代性實施例中,輔助電路對輸入碼字之資料部分編碼,且演算結果與輸入碼字之間的逐位元互斥或。將互斥或結果提供至解碼器。在解碼完成之後,輔助電路演算解碼器輸出與輸入碼字之經編碼資料部分之間的逐位元互斥或。
在其他實施例中,輔助電路使用正負號-量值格式而非使用2的補數格式來表示軟式解碼度量(例如,LLR)。解碼器亦經組態以對使用正負號-量值格式表示的軟式度量起作用。
所揭示技術能夠達成ECC解碼器之平均功率消耗之相當可觀之減小,時常約15%至20%的減小。舉例而言,對於延長電池供電設備之電池壽命以及對於減小成本及熱並增 加可靠度,此功率節省為重要的。
系統描述
圖1為根據本發明之一實施例的示意性地說明使用錯誤校正編碼(ECC)之無線通信系統20的方塊圖。系統20包含將資料傳輸至接收器28的傳輸器24。該傳輸器接受輸入資料,藉由ECC對資料編碼,根據特定調變方案對經編碼資料進行調變,將經調變數位信號轉換成類比信號,將類比信號增頻轉換至合適射頻(RF),且使用傳輸天線32朝向接收器傳輸RF信號。
在接收器28中,接收天線36接收RF信號並將該RF信號提供至RF前端40。該前端將RF信號降頻轉換至基頻或合適中間頻率(IF),並藉由合適之類比轉數位轉換器(ADC-圖中未展示)將信號數位化。攜載經ECC編碼之資料的經數位化信號藉由數據機44來解調變,且ECC藉由ECC解碼器48來解碼。解碼器48進行本文中所描述之功率上高效之ECC解碼方案。藉由解碼ECC,解碼器48重建輸入至傳輸器24的資料。提供經重建資料作為接收器輸出。處理器52管理接收器28的操作。
系統20可包含(例如)蜂巢式系統、衛星系統、點對點通信鏈路,或使用ECC的任何其他合適通信系統。儘管圖1之實例參考無線通信系統,但本文中所描述之技術亦可供有線線路(wire-line)通信系統(諸如,線纜通信系統)使用。
圖2為根據本發明之一替代性實施例的示意性地說明使用ECC之資料儲存系統60的方塊圖。系統60包含將資料儲 存於記憶體器件68中的記憶體控制器64。該記憶體器件包含一包含多個記憶體胞76的陣列72。陣列72可包括任何合適類型之揮發性或非揮發性記憶體,諸如隨機存取記憶體(RAM)或快閃記憶體。或者,器件68可包含諸如硬碟機(HDD)之磁性儲存器件,或任何其他合適儲存媒體。系統60可用於各種主機系統及器件中,諸如計算器件、蜂巢式電話或其他通信終端機、可抽換式記憶體模組(「隨身碟」器件)、固態硬碟(SSD)、數位相機、音樂及其他媒體播放器及/或儲存並擷取資料的任何其他系統或器件中。
記憶體器件68包含讀取/寫入(R/W)單元80,該讀取/寫入(R/W)單元80將資料值寫入至記憶體胞76中並自記憶體胞讀取資料值。記憶體控制器64包含ECC單元84,該ECC單元84藉由特定ECC對資料進行編碼以供儲存,且對自記憶體胞擷取之資料的ECC進行解碼。ECC單元84進行本文中所描述之功率上高效之ECC解碼方案。處理器88管理記憶體控制器64的操作。
ECC解碼器48及ECC單元84可以軟體、以硬體或使用硬體元件與軟體元件之組合來實施。在一些實施例中,ECC解碼器48及ECC單元84可使用通用處理器來實施,該等通用處理器以軟體來程式化從而進行本文中所描述的功能。軟體可(例如)經由網路以電子表格下載至處理器,或軟體可或者或另外提供及/或儲存於有形媒體上,諸如磁性、光學或電子記憶體上。
本文中所描述之ECC解碼方案可用於諸如系統20之通信 系統中以及諸如系統60之資料儲存系統中。將以下描述應用至通信應用及儲存應用兩者以及涉及ECC的各種其他應用,且通常參考ECC解碼器。對ECC解碼器之任何引用適用於系統20之解碼器48以及系統60中之單元84的解碼器功能性。或者,本文中所描述之方法可藉由涉及ECC解碼之任何合適系統中的任何合適元件來進行。
功率上高效之ECC解碼
當以數位硬體來實施ECC解碼器時,解碼器功率消耗隨著在解碼程序期間發生之位元變遷的數目而顯著地增加。對功率消耗有貢獻之位元變遷(在邏輯「0」與「1」之間)可發生(例如)於硬體組件中,諸如暫存器、鎖存器、多工器、記憶體胞、正反器或任何其他合適組件中。在CMOS數位邏輯中,例如,基本電晶體主要在狀態變遷期間消耗功率,且當電晶體之狀態為靜態時幾乎不消耗功率,且因此位元變遷之數目對功率消耗具有直接影響。因此,非常需要減小在解碼期間發生於解碼器硬體中的位元變遷之數目。
下文所描述的本發明之實施例提供改良之ECC解碼器及關聯方法,該等解碼器及關聯方法減小位元變遷之數目且因此減小解碼器功率消耗。
本文中所描述之實施例主要參考低密度同位檢查(LDPC)碼之解碼。然而,所揭示技術可以類似方式用於解碼任何其他合適類型之ECC,諸如漢明、李德-所羅門、博斯-查德胡里-霍昆格姆(BCH)或渦輪碼。
本文中所描述之實施例主要參考對諸如對數似然比(LLR)之軟式解碼度量起作用的軟式ECC解碼器。軟式解碼器之一個實例為和-積LDPC解碼器。然而,所揭示技術可供任何其他合適類型之軟式解碼度量以及供硬式ECC解碼器使用。
本文中所描述之實施例主要解決如下系統碼:將每一碼字分成包含原始資料位元之資料部分,及包含關於該等資料位元計算之冗餘位元的冗餘部分。然而,所揭示技術亦可供非系統碼使用。
本文中所描述之實施例主要參考編碼及解碼程序應用至二進位位元的二進位碼。然而,所揭示技術亦可供編碼及解碼應用至多位元符號之非二進位碼以及供經由諸如格碼(lattice code)之連續值定義的碼使用。
圖3為根據本發明之一實施例的示意性地說明功率最佳化解碼器90的方塊圖。舉例而言,解碼器90可用以實施圖1之ECC解碼器48或圖2之ECC單元84。
解碼器90包含:硬體實施之LDPC解碼器94,其經組態以解碼LDPC碼字;及輔助電路98,其經組態以處理LDPC解碼器94之輸入及/或輸出,以便減小在解碼器94中發生之位元變遷的數目。LDPC解碼器94至少部分以硬體來實施,例如,使用一或多個場可程式化閘陣列(FPGA)或特殊應用積體電路(ASIC)來實施。
在本實例中,輔助電路98包含預處理單元102。單元102接受有雜訊輸入碼字,該有雜訊輸入碼字藉由用LDPC對 資料編碼並經由有雜訊頻道(例如,儲存或通信頻道)發送而產生。單元102將特定預處理操作應用至有雜訊碼字,且經預處理之有雜訊碼字經提供至LDPC解碼器94以供解碼。
預處理操作經定義,使得在解碼預處理碼字中LDPC解碼器94中的位元變遷之數目相對於解碼原始有雜訊輸入碼字減小。下文進一步描述預處理操作的若干實例。藉由減小位元變遷之數目,LDPC解碼器94之平均功率消耗可減小大約15%至20%。
在一些實施例中,輔助電路98包含後處理單元106,該後處理單元106將特定後處理操作應用至LDPC解碼器94的輸出(亦即,至經解碼之預處理碼字)。後處理操作重建最初在有雜訊輸入碼字中編碼的資料。下文進一步描述對應於預處理操作的後處理操作之若干實例。
在LDPC解碼器94之一些實施中,LDPC解碼器包含以順序方式處理LLR之序列的硬體實施之數位資料路徑。所揭示技術中的一些假設,具有相同正負號之LLR之間的變遷相較於具有相反正負號之LLR之間的變遷消耗較少功率。首先,當LLR具有相同正負號時,LLR之正負號位元將不翻轉(例如,此情形對於硬式解碼器為足夠的)。
此外,對於多數資料位元,LLR量值可假設為類似於解碼程序之相同階段的量值。因此,當以2之補數格式來表示資料時,許多位元在具有相反正負號之兩個LLR通過資料路徑時將翻轉。舉例而言,假設以2之補數格式使用四 個位元來表示每一LLR。考慮分別藉由「0100」及「1011」表示的具有值+4及-5之兩個LLR。可瞭解,兩個LLR之間的變遷使所有四個LLR位元翻轉。然而,若第二LLR將為+5(藉由「0101」表示)而非-5,則僅一位元將在LLR之間的變遷中翻轉。
校正子解碼
在一些實施例中,輔助電路98將解碼給定輸入碼字之問題變換為輸入碼字之位元值皆為邏輯零(但軟式解碼度量中之位元可靠度值相對於原始輸入碼字不改變)的等效問題。在此等實施例中,預處理單元102藉由提供至LDPC解碼器94之全零碼字來替換給定(有雜訊)輸入碼字。
在此等效問題中,LDPC解碼器94經組態以收斂至碼字之錯誤型樣而非資料位元。當解碼程序完成時,後處理單元106演算LDPC解碼器94之輸出與給定輸入碼字之硬估計之間的逐位元互斥或。
當此技術供軟式LDPC解碼程序使用時,輸入碼字之LLR皆以相同正負號開始。在LDPC解碼器之收斂之後,多數LLR仍將具有相同正負號(出錯位元除外,假設該等出錯位元係碼字中之整個數目個位元中的僅一小部分)。因此,LDPC解碼器94中的位元變遷之數目將為小的,且該解碼器之功率消耗將被減小。
使LDPC解碼器輸入中之每一位元藉由硬位元值h i 及可靠度量測p i 來表示。當使用LLR時,例如,硬位元值對應於各別LLR之正負號,且可靠度量測對應於LLR之各別量 值。藉由H來指示線性碼(在本實例中為LDPC碼)之同位檢查矩陣。當且僅當Hc=0時,向量c為有效碼字。
在反覆LDPC解碼器中,解碼程序修改硬位元值h i 及可靠度量測p i ,使得在收斂之後,估計之硬位元值h i 及估計之可靠度量測p i 滿足Hh=0(其中h指示所有h i 值的向量),且經編碼及調變之經解碼碼字根據某一距離量測最接近解碼器輸入。
所揭示技術可使用以下步驟序列來進行形式上概括:
■使用h i 之輸入值演算校正子s=Hh,其中h指示所有h i 值的向量。
■組態LDPC解碼器以收斂至型樣h,該型樣h滿足Hh=s(而非Hh=0)。對所有硬位元值皆為邏輯零(「0」)且可靠度量測經設定為p i 之初始輸入進行反覆解碼程序。
■在收斂(至錯誤型樣)之後,藉由演算hh之間的逐位元互斥或來產生最終輸出h
可展示,以上解碼程序在解碼效能方面等效於原始解碼程序,且因此,上文所描述之功率上高效之方案並不使LDPC解碼器之解碼效能降級。原始解碼程序搜尋滿足Hh=0之所有序列h,且根據某一距離量測選擇與輸入位元及機率最佳匹配之序列。所揭示解碼程序搜尋滿足Hh=s(其中s=Hh,如上文所定義)之所有序列h
可瞭解,後一搜尋檢查在原始搜尋中檢查的所有碼字,直至具有恆定位元型樣的逐位元互斥或。舉例而言,此情 形將為在用固定偽隨機序列藉由互斥或使資料隨機化時的情形。因此可展示,解碼器將收斂至同一序列。亦可展示,所揭示解碼器對於其他解碼程序(諸如,對於可信度傳遞(BP)或和-積程序)而言等效於原始解碼器。
LDPC解碼器可經組態而以任何合適方式收斂至錯誤型樣。考慮藉由一組檢查方程式定義的LDPC碼。習知LDPC解碼器通常在使得到滿足之同位檢查方程式之似然度增加的方向上在每一反覆中修改位元可靠度。在可信度傳遞(BP)解碼中,例如,解碼涉及位元節點與檢查節點之間的反覆訊息傳達,其中每一位元節點與各別碼字位元相關聯且每一檢查節點與各別檢查方程式相關聯,且檢查方程式強制其成員位元之互斥或為邏輯「0」。
在習知解碼器中,對應於未得到滿足之方程式之檢查節點產生傾向於減小可靠度(例如,LLR之絕對值)或使其成員位元之位元值(例如,LLR正負號)反轉的訊息。對應於得到滿足之方程式之檢查節點產生傾向於使可靠度增加或保持其成員位元之相同位元值的訊息。
當LDPC解碼器收斂至錯誤型樣時,每一檢查方程式之互斥或結果應等於對應校正子位元而非常數「0」。因此,得到滿足之檢查方程式並不定義為成員位元之互斥或等於「0」的方程式,而是定義為互斥或結果等於對應校正子位元的方程式。
因此,在一些實施例中,同位檢查互斥或結果不等於對應校正子位元的檢查節點產生傾向於減小可靠度(或LLR之 絕對值)或使其成員位元之位元值(或LLR正負號)反轉的訊息,且反之亦然。此特徵(例如)藉由改變如上文所定義之訊息產生邏輯中的得到滿足之方程式之定義而實施於習知反覆LDPC解碼器中。
或者,「虛擬位元」可添加至每一檢查方程式。虛擬位元之值為對應校正子位元值,且其可靠度經設定為某一大值。藉由此設定,可使用得到滿足之方程式之習知定義。
圖4為根據本發明之一實施例的示意性地說明用於功率最佳化ECC解碼之方法的流程圖。方法自預處理單元102藉由全「0」碼字替換輸入碼字並將全「0」碼字作為輸入提供至LDPC解碼器94(在輸入步驟110處)開始。LLR量值p i 未改變。
在解碼器組態步驟114處,單元102組態LDPC解碼器94以收斂至錯誤型樣h。在解碼步驟118處,LDPC解碼器94解碼與機率p i 耦合之全「0」碼字,以便收斂至h。在步驟118之LDPC解碼完成之後,在後處理步驟122處,後處理單元106演算解碼器94之輸出(h)與硬位元估計(h)之間的逐位元互斥或。在輸出步驟126處,輔助電路98提供互斥或結果作為輸出。
藉由對有雜訊輸入碼字之資料部分進行編碼來進行預處理
在替代性實施例中,輔助電路98之預處理單元102對(有雜訊)輸入碼字之資料部分編碼,且演算結果與輸入碼字之間的逐位元互斥或。互斥或結果係作為輸入提供至 LDPC解碼器94。在LDPC解碼器94完成解碼程序之後,輔助電路之後處理單元106演算解碼器輸出與輸入碼字之經編碼資料部分之間的逐位元互斥或。
圖5為根據本發明之一替代性實施例的示意性地說明用於功率最佳化ECC解碼之方法的流程圖。方法自輔助電路98之預處理單元102編碼輸入碼字之資料部分(在預編碼步驟130處)開始。在預互斥或步驟134處,單元102接著演算經編碼資料部分與有雜訊輸入碼字之間的逐位元互斥或。
在此階段,碼字之資料位元將全部變為「0」。冗餘位元中之一些可為非零的,但其數目相對於碼字中之位元的總數為小的。單元102通常保持位元可靠度不改變。互斥或結果係作為輸入提供至LDPC解碼器94。藉由此類別之預處理,LDPC解碼中之多數變遷將在具有相同正負號的LLR之間。
在LDPC解碼步驟138處,LDPC解碼器94解碼經預處理之輸入碼字。在LDPC解碼器已收斂之後,在後互斥或步驟142處,後處理單元106演算LDPC解碼器94之輸出與輸入碼字之經編碼資料部分之間的逐位元互斥或。在結果輸出步驟146處,提供互斥或結果作為輸出。
使用與以上圖4之方法相同的基本原理,可展示,圖5之解碼程序在解碼效能方面等效於原始解碼程序。因此,圖5之功率上高效之方案並不使LDPC解碼器之解碼效能顯著降級。
與圖4之方案相比較,圖5之方案可在無對LDPC解碼器 94之任何修改的情況下予以實施。另一方面,圖5之方案可具有稍高數目個位元變遷,及歸因於額外編碼階段之某一小殘餘效能降級。
藉由使用正負號-量值格式表示LLR進行解碼
在一些實施例中,LDPC解碼器94之電路的至少一部分經組態以處理使用正負號-量值格式表示的軟式解碼度量(在本實例中為LLR)。在此格式中,每一LLR藉由正負號位元及指示LLR量值之一或多個位元來表示(與2之補數格式相反)。
在各種實施例中,LDPC解碼器電路之各種部分(例如,記憶體中之LLR的儲存及/或資料路徑處理)可使用正負號-量值格式來實施。在許多實務狀況下,在解碼程序之給定階段,多數LLR將具有類似量值。
因此,正負號-量值格式將使用相同位元值來表示多數LLR,正負號位元(對應於硬位元值)及量值上之一些小波動(對應於位元可靠度量測)除外。因此,與2之補數格式相比較,正負號-量值格式顯著減小LDPC解碼器中之位元變遷的數目。
在一些實施例中,預處理單元102接受呈2之補數格式的輸入碼字之LLR,並在將該等LLR提供至LDPC解碼器94以供解碼之前將該等LLR轉換為正負號-量值格式。
圖6為根據本發明之另一實施例的示意性地說明用於功率最佳化ECC解碼之方法的流程圖。方法自輔助電路98使用正負號-量值格式表示輸入碼字(通常為LLR之序列)(在 格式化步驟150處)開始。在正負號-量值解碼步驟154處,LDPC解碼器94接著將軟式LDPC解碼程序應用至具有正負號-量值格式的LLR。
CRC驗證考慮
在一些實施例中,輸入碼字具備用於驗證經解碼資料之一組循環冗餘檢查(CRC)位元。LDPC解碼器可在解碼之後使用CRC來驗證資料,或在解碼期間使用CRC以便在收斂至有效資料之後隨即終止解碼程序。在一些實施例中,將CRC定義為基礎系統線性碼(諸如BCH)的冗餘位元。
然而,當使用本文中所描述之預處理/後處理技術時,解碼程序結束時LDPC解碼器輸出處的資料位元並非輸入碼字之原始資料位元,而是與固定位元型樣之逐位元互斥或之後的原始資料位元。因此,不可直接在LDPC解碼器輸出上驗證CRC。原理上演算LDPC解碼器輸出與固定位元型樣之間的逐位元互斥或以便啟用CRC驗證為可能的,但此程序有時可為複雜的。
在一些實施例中,解碼器90以更高效方式驗證CRC。當CRC係基於基礎線性碼時,習知LDPC解碼器通常將藉由計算基礎線性碼之校正子及與零進行比較來驗證CRC。
在一些實施例中,輔助電路98在解碼之前關於固定位元型樣演算基礎線性碼的校正子。將此校正子指示為S 0。LDPC解碼器94可藉由在解碼程序之特定階段關於資料位元計算基礎線性碼的校正子及比較結果與預先演算之S 0來在解碼程序期間驗證CRC。
或者,輔助電路98可稍微修改固定位元型樣(例如,藉由添加具有負號之較多LLR),使得CRC即使在資料與固定位元型樣之間的逐位元互斥或之後仍將為零。
所揭示CRC驗證技術可以直接方式普及至並非基於純線性碼的CRC,諸如基於仿射碼的CRC。
儘管本文中所描述之實施例參考用於預處理及後處理的若干實例技術,但輔助電路98可應用任何其他合適類型之預處理及/或後處理以便減小解碼器94中之位元變遷的數目且因此減小解碼器功率消耗。
因此應瞭解,以上描述之實施例係藉由實例來敍述,且本發明不限於在上文特定展示並描述的內容。確切而言,本發明之範疇包括在上文描述之各種特徵之組合及次組合,以及對於熟習此項技術者而言在研讀前述描述內容之後隨即將發生且先前技術中未揭示的特徵之變化及修改兩者。以引用方式併入本專利申請案中之文獻應考慮為申請案之整體部分,以下情況除外:在以與本說明書中明確或隱含地作出之定義衝突的方式在此等所併入文獻中定義任何術語之意義上,應考慮僅本說明書中的定義。
20‧‧‧無線通信系統
24‧‧‧傳輸器
28‧‧‧接收器
32‧‧‧傳輸天線
36‧‧‧接收天線
40‧‧‧RF前端
44‧‧‧數據機
48‧‧‧解碼器
52‧‧‧處理器
60‧‧‧系統
64‧‧‧記憶體控制器
68‧‧‧記憶體器件
72‧‧‧陣列
76‧‧‧記憶體胞
80‧‧‧讀取/寫入(R/W)單元
84‧‧‧ECC單元
88‧‧‧處理器
90‧‧‧功率最佳化解碼器
94‧‧‧硬體實施之LDPC解碼器
98‧‧‧輔助電路
102‧‧‧預處理單元
106‧‧‧後處理單元
圖1為根據本發明之一實施例的示意性地說明使用錯誤校正編碼(ECC)之通信系統的方塊圖;圖2為根據本發明之一實施例的示意性地說明使用ECC之資料儲存系統的方塊圖;圖3為根據本發明之一實施例的示意性地說明ECC解碼 器的方塊圖;且圖4至圖6為根據本發明之實施例的示意性地說明用於功率最佳化之ECC解碼之方法的流程圖。
20‧‧‧無線通信系統
24‧‧‧傳輸器
28‧‧‧接收器
32‧‧‧傳輸天線
36‧‧‧接收天線
40‧‧‧RF前端
44‧‧‧數據機
48‧‧‧解碼器
52‧‧‧處理器

Claims (20)

  1. 一種方法,其包含:接受一輸入碼字從而藉由一硬體實施之錯誤校正碼(ECC)解碼器來解碼,該輸入碼字藉由用一ECC對資料編碼而產生;對該輸入碼字進行預處理以產生一預處理碼字,使得在解碼該預處理碼字時發生於該硬體實施之ECC解碼器中的位元變遷之一第一數目小於在解碼該輸入碼字中將發生於該ECC解碼器中的該等位元變遷之一第二數目;使用該ECC解碼器解碼該預處理碼字;及自該經解碼之預處理碼字復原該資料。
  2. 如請求項1之方法,其中對該輸入碼字進行預處理包含藉由一全零碼字替換該輸入碼字,且其中解碼該預處理碼字包含使該ECC解碼器收斂至該輸入碼字中的一錯誤型樣。
  3. 如請求項2之方法,其中藉由該全零碼字替換該輸入碼字包含:保持該輸入碼字之各別位元的可靠度值;及將該全零碼字及該等可靠度值提供至該ECC解碼器。
  4. 如請求項2之方法,其中藉由一組檢查方程式來定義該ECC,其中該ECC解碼器包括分別對應於該等檢查方程式並與對應於該預處理碼字之各別位元的位元節點交換訊息的檢查節點,且其中使該ECC解碼器收斂至該錯誤型樣包含組態每一檢查節點以:在一各別檢查方程式之一評估等於一各別校正子時產生使一可靠度增加或保持 參與該檢查方程式之位元的一正負號之第一訊息,且在該檢查方程式之該評估與該各別校正子不同時產生減小該可靠度或使參與該各別檢查方程式之該等位元的該正負號反轉的第二訊息。
  5. 如請求項2之方法,其中復原該資料包含:演算該經解碼之預處理碼字與該輸入碼字之一硬位元估計之間的一逐位元互斥或(XOR)。
  6. 如請求項1之方法,其中該輸入碼字包含一資料部分及一冗餘部分,且其中對該輸入碼字進行預處理包含藉由該ECC對該資料部分編碼以產生一編碼結果,且其中復原該資料包含演算該編碼結果與該經解碼之預處理碼字之間的一逐位元互斥或。
  7. 如請求項1之方法,其中接受該輸入碼字包含接受對應於該輸入碼字之各別位元的多個軟式解碼度量,其中對該輸入碼字進行預處理包含對該等軟式解碼度量進行預處理,且其中解碼該預處理碼字包含將一軟式解碼程序應用至該等經預處理之軟式解碼度量。
  8. 如請求項7之方法,其中對該輸入碼字進行預處理包含:使用一正負號-量值格式來表示該等軟式解碼度量。
  9. 如請求項1之方法,且該方法包含除該輸入碼字外亦接受針對該輸入碼字計算之循環冗餘檢查(CRC)位元,及使用該等CRC位元來驗證該復原資料。
  10. 如請求項9之方法,其中復原該資料包含演算該經解碼之預處理碼字與一固定資料型樣之間的一逐位元互斥 或,且其中驗證該資料包含:關於該固定資料型樣計算用於產生該等CRC位元的一線性碼之一第一校正子;關於該復原資料計算該線性碼的一第二校正子;及比較該第二校正子與該第一校正子。
  11. 一種裝置,其包含:一硬體實施之錯誤校正碼(ECC)解碼器,其經組態以解碼ECC碼字;及輔助電路,其經組態以:接受一輸入碼字進而對該輸入碼字進行預處理以產生一預處理碼字,使得在解碼該預處理碼字時發生於該硬體實施之ECC解碼器中的位元變遷之一第一數目小於在解碼該輸入碼字中將發生於該ECC解碼器中的該等位元變遷之一第二數目,該輸入碼字藉由用該ECC對資料編碼而產生;使用該ECC解碼器解碼該預處理碼字;且自該經解碼之預處理碼字復原該資料。
  12. 如請求項11之裝置,其中該輔助電路經組態以:藉由一全零碼字替換該輸入碼字,將該全零碼字作為輸入提供至該ECC解碼器,且使該ECC解碼器收斂至該輸入碼字中的一錯誤型樣。
  13. 如請求項12之裝置,其中該輔助電路經組態以:保持該輸入碼字之各別位元的可靠度值,且將該全零碼字及該等可靠度值提供至該ECC解碼器。
  14. 如請求項12之裝置,其中藉由一組檢查方程式來定義該 ECC,其中該ECC解碼器包含分別對應於該等檢查方程式並與對應於該預處理碼字之各別位元的位元節點交換訊息的檢查節點,且其中該輔助電路經組態以藉由組態每一檢查節點以進行以下操作而使該ECC解碼器收斂至該錯誤型樣:在一各別檢查方程式之一評估等於一各別校正子時產生使一可靠度增加或保持參與該檢查方程式之位元的一正負號之第一訊息,及在該檢查方程式之該評估與該各別校正子不同時產生減小該可靠度或使參與該各別檢查方程式之該等位元的該正負號反轉的第二訊息。
  15. 如請求項12之裝置,其中該輔助電路經組態以藉由演算該經解碼之預處理碼字與該輸入碼字之一硬位元估計之間的一逐位元互斥或來復原該資料。
  16. 如請求項11之裝置,其中該輸入碼字包含一資料部分及一冗餘部分,且其中該輔助電路經組態以:藉由用該ECC對該資料部分編碼以產生一編碼結果來對該輸入碼字進行預處理,且藉由演算該編碼結果與該經解碼之預處理碼字之間的一逐位元互斥或來復原該資料。
  17. 如請求項11之裝置,其中該輔助電路經組態以藉由接受對應於該輸入碼字之各別位元的多個軟式解碼度量來接受該輸入碼字、對該等軟式解碼度量進行預處理,且其中該ECC解碼器經組態以將一軟式解碼程序應用至該等經預處理之軟式解碼度量。
  18. 如請求項17之裝置,其中該輔助電路經組態以藉由使用 一正負號-量值格式來表示該等軟式解碼度量而對該輸入碼字進行預處理,且其中該ECC解碼器經組態以解碼呈該正負號-量值格式的該輸入碼字。
  19. 如請求項11之裝置,其中該輔助電路經組態以:除該輸入碼字外亦接受針對該輸入碼字計算之循環冗餘檢查(CRC)位元,且使用該等CRC位元來驗證該復原資料。
  20. 如請求項19之裝置,其中該輔助電路經組態以:藉由演算該經解碼之預處理碼字與一固定資料型樣之間的一逐位元互斥或來復原該資料,且藉由以下操作來驗證該資料:關於該固定資料型樣計算用於產生該等CRC位元的一線性碼之一第一校正子;經由該復原資料計算該線性碼的一第二校正子;及比較該第二校正子與該第一校正子。
TW101134795A 2011-09-21 2012-09-21 線性碼之功率最佳化解碼 TWI497919B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161537144P 2011-09-21 2011-09-21
US13/547,288 US8543891B2 (en) 2011-09-21 2012-07-12 Power-optimized decoding of linear codes

Publications (2)

Publication Number Publication Date
TW201320619A true TW201320619A (zh) 2013-05-16
TWI497919B TWI497919B (zh) 2015-08-21

Family

ID=47002651

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101134795A TWI497919B (zh) 2011-09-21 2012-09-21 線性碼之功率最佳化解碼

Country Status (4)

Country Link
US (2) US8543891B2 (zh)
EP (1) EP2573943B1 (zh)
TW (1) TWI497919B (zh)
WO (1) WO2013043968A2 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10797728B1 (en) 2012-07-25 2020-10-06 Marvell Asia Pte, Ltd. Systems and methods for diversity bit-flipping decoding of low-density parity-check codes
US20140281794A1 (en) * 2013-03-14 2014-09-18 Kabushiki Kaisha Toshiba Error correction circuit
US9582361B2 (en) 2014-05-20 2017-02-28 Seagate Technology Llc Fixed point conversion of LLR values based on correlation
US10089177B2 (en) * 2014-06-30 2018-10-02 Sandisk Technologies Llc Multi-stage decoder
US10009040B2 (en) * 2015-03-25 2018-06-26 Topcon Positioning Systems, Inc. Method and apparatus for identification and compensation for inversion of input bit stream in LDPC decoding
TWI601387B (zh) * 2016-06-22 2017-10-01 晨星半導體股份有限公司 包含錯誤更正程序之解碼裝置及解碼方法
US10312937B2 (en) * 2016-11-02 2019-06-04 Qualcomm Incorporated Early termination technique for LDPC decoder architecture
US10025661B1 (en) * 2016-12-27 2018-07-17 Sandisk Technologies Llc Adaptive hard and soft bit decoding
CN108322285B (zh) * 2017-01-16 2020-09-18 华为技术有限公司 数据的发送方法、接收方法和装置
US10372535B2 (en) * 2017-08-29 2019-08-06 Winbond Electronics Corp. Encoding method and a memory storage apparatus using the same
CN108092673B (zh) * 2018-02-10 2021-04-16 中国传媒大学 一种基于动态调度的bp迭代译码方法及系统
CN108847848B (zh) * 2018-06-13 2021-10-01 电子科技大学 一种基于信息后处理的极化码的bp译码算法
US12052033B2 (en) 2022-07-13 2024-07-30 Apple Inc. Scheduling of iterative decoding depending on soft inputs

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10140114A1 (de) * 2001-08-16 2003-03-13 Infineon Technologies Ag Vorrichtung und Verfahren zur Qualitätsprüfung von über einen Funkkanal übertragenen Datenpaketen
US6895546B2 (en) * 2001-08-16 2005-05-17 Broad-Light Ltd. System and method for encoding and decoding data utilizing modified reed-solomon codes
EP1414158A1 (en) 2002-10-24 2004-04-28 STMicroelectronics N.V. Method of decoding an incident turbo-code encoded signal in a receiver, and corresponding receiver, in particular for mobile radio systems
FR2849514A1 (fr) * 2002-12-26 2004-07-02 Canon Kk Code de geometrie algebrique adapte aux erreurs en rafale
US7174495B2 (en) 2003-12-19 2007-02-06 Emmanuel Boutillon LDPC decoder, corresponding method, system and computer program
KR100594300B1 (ko) * 2004-11-05 2006-06-30 삼성전자주식회사 디지털 비디오 데이터 전송 시스템 및 그 전송 방법
US8042029B2 (en) * 2006-05-21 2011-10-18 Ramot At Tel Aviv University Ltd. Error correction decoding by trial and error
WO2008039098A1 (en) 2006-09-29 2008-04-03 Intel Corporation A modified min-sum kernel for a low density parity check (ldpc) code decoder
US7966550B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Soft bit data transmission for error correction control in non-volatile memory
US8151171B2 (en) * 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
US20090089648A1 (en) * 2007-10-01 2009-04-02 The Hong Kong University Of Science And Technology Low power viterbi decoder using scarce state transition and path pruning
US7501963B1 (en) * 2007-10-17 2009-03-10 Micron Technology, Inc. Balanced data bus inversion
WO2009072103A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
US7616133B2 (en) * 2008-01-16 2009-11-10 Micron Technology, Inc. Data bus inversion apparatus, systems, and methods
US8255758B2 (en) * 2008-01-21 2012-08-28 Apple Inc. Decoding of error correction code using partial bit inversion
US8209590B2 (en) * 2008-11-05 2012-06-26 Broadcom Corporation Header encoding/decoding
JP5445829B2 (ja) 2009-05-29 2014-03-19 ソニー株式会社 受信装置、受信方法、およびプログラム、並びに受信システム
US8438461B2 (en) 2009-10-12 2013-05-07 Marvell World Trade Ltd. Power consumption in LDPC decoder for low-power applications
US8458555B2 (en) * 2010-06-30 2013-06-04 Lsi Corporation Breaking trapping sets using targeted bit adjustment
US20120079348A1 (en) * 2010-09-24 2012-03-29 Helia Naeimi Data with appended crc and residue value and encoder/decoder for same

Also Published As

Publication number Publication date
WO2013043968A3 (en) 2014-05-15
US20130339815A1 (en) 2013-12-19
EP2573943B1 (en) 2015-02-25
US8543891B2 (en) 2013-09-24
WO2013043968A2 (en) 2013-03-28
TWI497919B (zh) 2015-08-21
US20130073928A1 (en) 2013-03-21
US9337955B2 (en) 2016-05-10
EP2573943A1 (en) 2013-03-27

Similar Documents

Publication Publication Date Title
TWI497919B (zh) 線性碼之功率最佳化解碼
US20200177208A1 (en) Device, system and method of implementing product error correction codes for fast encoding and decoding
KR101321487B1 (ko) 기입 검증을 사용한 코드들의 에러-플로어 완화
US11740960B2 (en) Detection and correction of data bit errors using error correction codes
US9088300B1 (en) Cyclic redundancy check for out-of-order codewords
CN109586731B (zh) 用于解码纠错码的系统和方法
US8910028B1 (en) Implementation of LLR biasing method in non-binary iterative decoding
JP5723975B2 (ja) Ldpcコードの復号のための方法、システム、およびプログラム
JP2019057752A (ja) メモリシステム
US10200066B2 (en) Code reconstruction scheme for multiple code rate TPC decoder
EP3926834A1 (en) Ldpc decoder apparatus, device, system, method and computer program
Yu et al. Concatenated raptor codes in NAND flash memory
KR101480383B1 (ko) 코드 인코딩 장치
KR101484066B1 (ko) 엘디피시 부호의 디코딩 방법
TWI645683B (zh) 使用代數碼與ldpc碼的部分聯結編碼系統
TWI551058B (zh) 最小-總和演算法之低密度奇偶校驗碼解碼器及其解碼方法
Gherman et al. Sequential Decoders for Binary Linear Block ECCs
CN118508976A (zh) 编码方法、译码方法、编码器、译码器及可读存储介质
CN111782438A (zh) 一种改进的抗辐射加固矩阵码译码电路
Thangaraj et al. Iterative majority logic decoding of a class of Euclidean Geometry codes
JP2008152915A (ja) リードチャネル復号器、リードチャネル復号方法およびリードチャネル復号プログラム

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees