TWI516914B - 用於使用位元可靠度之錯誤校正碼的錯誤校正偵測之系統及方法 - Google Patents
用於使用位元可靠度之錯誤校正碼的錯誤校正偵測之系統及方法 Download PDFInfo
- Publication number
- TWI516914B TWI516914B TW103117384A TW103117384A TWI516914B TW I516914 B TWI516914 B TW I516914B TW 103117384 A TW103117384 A TW 103117384A TW 103117384 A TW103117384 A TW 103117384A TW I516914 B TWI516914 B TW I516914B
- Authority
- TW
- Taiwan
- Prior art keywords
- error correction
- read values
- reliability
- decoder
- codeword
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
- H03M13/451—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
- H03M13/453—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
- H03M13/2975—Judging correct decoding, e.g. iteration stopping criteria
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3738—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3784—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 for soft-output decoding of block codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
- H03M13/2963—Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Description
本發明係關於一種錯誤校正偵測之系統及方法,尤指一種使用位元可靠度之錯誤校正碼的錯誤校正偵測之系統及方法。
諸如(例如)BCH碼、里德所羅門碼,及漢明碼之錯誤校正碼廣泛用於儲存及通訊之各種領域中。在錯誤校正碼之解碼期間,解碼器通常將報告經接收字為不可校正或可校正。然而,當一解碼器主張經接收字為可校正時,可能解碼器錯誤地解碼成不同於經傳輸碼字之另一碼字。此稱作為一錯誤校正。
為解決上述現有技術的缺失,本發明一目的在於提升錯誤校正偵測改良解碼之效能。
本發明另一目的在於提供一種靈活的錯誤校正偵測的系統及方法。
為達上述目的及其他目的,本發明係提供一種使用位元可靠度之錯誤校正碼的錯誤校正偵測之系統,其包括一錯誤校正解碼器及一錯誤校正偵測器,該錯誤校正解碼器經組態以產生對應於複數個讀取值之一或多者之一或多個經提出校正,其中該等讀取值對應於一碼字;及該錯誤校正偵測器經組態以接收對應於該等讀取值之各自者之複數個可靠度,接收對應於該等讀取值
之該一或多者之該一或多個經提出的校正,及至少部分基於對應於該等讀取值之該一或多者之該等可靠度的一或多者來判定一錯誤校正度量。
於本發明之一實施例中的系統,該系統包含一半導體裝置,該半導體裝置包含下列之一或多者:一場可程式化閘陣列(field programmable gate array,FPGA)或一特定應用積體電路(application specific integrated circuit,ASIC)。
於本發明之一實施例中的系統,該等讀取值包括複數個硬決策。
於本發明之一實施例中的系統,該一或多個經提出校正包括對應於該等讀取值內之一或多個位置之一或多個經提出位元翻轉。
於本發明之一實施例中的系統,該等可靠度之至少一者包括一對數似然比(log-likelihood ratio,LLR)。
於本發明之一實施例中的系統,至少部分基於對應於該等讀取值之該一或多者之該等可靠度之該一或多者來判定該錯誤校正度量包括組合該等可靠度之該一或多者之絕對值。
於本發明之一實施例中的系統,該錯誤校正偵測器進一步經組態以比較該錯誤校正度量與一錯誤校正臨限值,其中:在該錯誤校正度量小於或等於該錯誤校正臨限值之情況下,將該一或多個經提出的校正應用於該等讀取值,以獲取一可校正碼字且輸出該可校正碼字;及在該錯誤校正度量大於該錯誤校正臨限值之情況下,不將該一或多個經提出的校正應用於該等讀取值且輸出一碼字不可校正狀態。
於本發明之一實施例中的系統,該錯誤校正臨限值可回應於下列之一或多者而調整:解碼迭代中之一改變及訊雜比(signal to noise ratio,SNR)中之一改變。
於本發明之一實施例中的系統,使用一渦輪乘積碼(turbo product code,TPC)來編碼該碼字。
於本發明之一實施例中的系統,該錯誤校正解碼器進一步經組
態以至少部分基於Chase解碼器參數m及該等可靠度來判定對應於該等讀取值之複數個位元序列;自解碼該等位元序列判定一候選經解碼位元序列組;及自該候選經解碼位元序列組選擇一經解碼位元序列,其中該選定經解碼位元序列包含該一或多個經提出的校正。
於本發明之一實施例中的系統,該選定經解碼位元序列係至少
部分基於該選定經解碼位元序列對應於一校正碼字之一可靠度而自該候選經解碼位元序列組選擇。
於本發明之一實施例中的系統,該選定經解碼位元序列係至少
部分基於該選定經解碼位元序列與該等讀取值之間之一歐幾里德距離而自該候選經解碼位元序列組選擇。
於本發明之一實施例中的系統,該一或多個經提出校正包括該
等讀取值與該選定經解碼位元序列之間之一或多個位元翻轉。
於本發明之一實施例中的系統,該一或多個經提出校正包含藉
由使用該錯誤校正解碼器之一翻轉組件位元翻轉至多該等讀取值之m個最不可靠位置,且接著使用該錯誤校正解碼器之一硬決策錯誤校正解碼器組件位元翻轉至多T個位置來判定之針對該等讀取值之一或多個淨位元翻轉。
此外,本發明係提供一種使用位元可靠度之錯誤校正碼的錯誤
校正偵測之方法,其包括:接收對應於複數個讀取值之各自者之複數個可靠度;接收對應於該等讀取值之一或多者之一或多個經提出校正;及至少部分基於對應於該等讀取值之該一或多者之該等可靠度之一或多者來判定一錯誤校正度量。
於本發明之一實施例中的方法,其中至少部分基於對應於該等
讀取值之該一或多者之該等可靠度之該一或多者來判定該錯誤校正度量包括組
合該等可靠度之該一或多者之絕對值。
於本發明之一實施例中的方法,進一步包括:比較該錯誤校正
度量與一錯誤校正臨限值,其中:在該錯誤校正度量小於或等於該錯誤校正臨限值之情況下,將該一或多個經提出校正應用於該等讀取值以獲取一可校正碼字且輸出該可校正碼字;及在該錯誤校正度量大於該錯誤校正臨限值之情況下,不將該一或多個經提出校正應用於該等讀取值且輸出一碼字不可校正狀態。
於本發明之一實施例中的方法,該錯誤校正臨限值可回應於下
列之一或多者而調整:解碼迭代中之一改變及訊雜比(SNR)中之一改變。
於本發明之一實施例中的方法,進一步包括:至少部分基於
Chase解碼器參數m及該等可靠度來判定對應於該等讀取值之複數個位元序列;自解碼該等位元序列判定一候選經解碼位元序列組;及自該候選經解碼位元序列組選擇一經解碼位元序列,其中該選定經解碼位元序列包含該一或多個經提出校正。
於本發明之一實施例中的方法,該一或多個經提出的校正包括
該等讀取值與該選定經解碼位元序列之間之一或多個位元翻轉。
於本發明之一實施例中的方法,其中該一或多個經提出校正包含藉由位元翻轉至多該等讀取值之m個最不可靠位置,且接著位元翻轉至多該等讀取值之T個位置來判定之針對該等讀取值之一或多個淨位元翻轉。
藉此,藉由本發明所提供之系統及方法,即可使用錯誤校正偵測改良解碼之效能,可將錯誤校正偵測與硬決策解碼或軟決策解碼組合,且因為錯誤校正臨限值可經選擇以更嚴格或寬鬆地篩選出且亦可隨著時間或回應於特定事件而調整,故錯誤校正偵測可係靈活的。
200‧‧‧系統
202‧‧‧錯誤校正解碼器
204‧‧‧錯誤校正偵測器
300‧‧‧程序
302~306‧‧‧步驟
400‧‧‧程序
402~414‧‧‧步驟
700‧‧‧程序
702~708‧‧‧步驟
800‧‧‧系統
802‧‧‧Chase解碼翻轉器
804‧‧‧硬決策錯誤校正解碼器
806‧‧‧選擇器
808‧‧‧錯誤校正偵測器
下文中之詳細描述及隨附圖式中揭示本發明之各種實施例。
第1圖係顯示具有小T(對於列及行碼T=3,對於主控碼T=2)之BCH碼之一成分碼之搭配主控碼之一多位準渦輪乘積碼(MTPC)(MTPC+主控)之失敗率曲線之一例子。
第2圖係顯示用於使用可靠度資訊之錯誤校正碼之錯誤校正偵測之一系統之一圖式。
第3圖係顯示用於使用可靠度資訊判定一錯誤校正度量之一程序之一實施例之一流程圖。
第4圖係顯示用於使用可靠度資訊之錯誤校正碼之錯誤校正偵測之一程序之一實施例之一流程圖。
第5圖顯示與一碼字相關聯之一組硬決策及一對應組之可靠度。
第6圖係用於一AWGN通道中藉由T=3、n=1023之一BCH碼之一硬決策BCH解碼器之正確校正及錯誤校正之錯誤校正度量之一例示性直方圖。
第7圖係描述使用一軟決策BCH解碼器解碼之一例示性程序之一流程圖。
第8圖係顯示一Chase-m解碼器及一錯誤校正偵測系統之一圖式。
第9圖顯示與一碼字相關聯之一組硬決策及一對應組之可靠度及Chase解碼中之經識別m個位元。
第10圖顯示輸入至一Chase解碼器之一硬決策錯誤校正BCH解碼器(T=3)之一位元序列及藉由Chase解碼器輸出之經解碼位元序列。
第11圖顯示錯誤校正偵測之一例示性效能曲線且如所示其幾乎重疊genie解碼曲線。
本發明可以多種方式實施為包含一程序、一設備、一系統、一實體組合物、體現在一電腦可讀取儲存媒體上之一電腦程式產品,及/或一處理
器,諸如經組態以執行儲存在耦合至該處理器之一記憶體上及/或由耦合至該處理器之一記憶體提供之指令之一處理器。在本說明書中,此等實施方案或本發明可採用之任何其他形式可稱作為技術。一般而言,所揭示程序之步驟之順序可在本發明之範疇內改變。除非另有說明,可將描述成經組態以執行一任務之一組件(諸如,一處理器或一記憶體)實施為暫時經組態以在一給定時間執行任務之一通用組件或經製造以執行任務之一專用組件。如在本文中所使用,術語「處理器」係指一或多個裝置、電路,及/或經組態以處理資料(諸如,電腦程式指令)之處理核心。
下文提供隨圖解說明本發明之原理之隨附圖式一起之本發明之一或多項實施例之一詳細描述。結合此等實施例描述本發明,但本發明不限於任何實施例。本發明之範疇僅由申請專利範圍限制且本發明涵蓋許多替代、修改及等效物。下文描述中闡述許多特定細節以提供本發明之一全面理解。為例子之目的提供此等細節,且可在不脫離此等特定細節之一些或全部之情況下根據申請專利範圍實踐本發明。為清楚之目的,未詳細描述關於本發明之技術領域中已知之技術材料以免不必要地模糊本發明。
第1圖係顯示具有小T(對於列及行碼T=3,對於主控碼T=2)之BCH碼之一成分碼之搭配主控碼之一多位準渦輪乘積碼(multi-level turbo product code,MTPC)(MTPC+主控)之失敗率曲線之一例子。左邊之效能曲線係一真的BCH解碼器之模擬結果,其中將發生成分BCH碼之錯誤校正,且右邊之效能曲線使用一genie解碼器,其中藉由將錯誤校正與genie資料比較而將其移除(即,有效地不發生成分碼之錯誤校正)。在各種實施例中,「genie資料」係指可由一genie解碼器用以解碼讀取訊號而具有最小或無錯誤校正之與經傳輸碼字相同之經模擬資料。如第1圖中所示,兩個曲線之間存在一效能縫隙。
錯誤校正問題不容易解決。在一些習知系統中,除由碼產生之
同位之外添加同位檢查位元以偵測藉由一解碼器輸出之一可校正碼字中之一錯誤校正。例如,可將循環冗餘檢查(cyclic redundancy check,CRC)添加至使用者資料部分,且與使用者資料一起由主碼保護。在解碼之後,進一步檢查CRC。若檢查失敗,則偵測一錯誤校正。另一習知例子將一或兩個單個同位檢查添加至碼字。類似於CRC檢查,若經解碼碼字不滿足同位檢查,則偵測錯誤校正。然而,此等習知技術之缺點係另外之額外負擔之成本。在一些額外負擔敏感之應用中,不可使用此等習知技術。由於將此小量之額外負擔用於一渦輪乘積碼(turbo product code,TPC)系統中之各成分碼(即,使用T之一小值),故此處不可使用此等解決方法。
本文中描述使用可靠度資訊之錯誤校正偵測之實施例。在各種實施例中,執行錯誤校正偵測而不將額外同位位元添加至待編碼之使用者資料。在各種實施例中,將已寫入至一媒體(例如,硬碟或快閃)之經編碼碼字處理成硬決策組。各「硬決策」係包括一個「0」或「1」值之一位元且與碼字之長度內之一特殊位置相關聯。一「硬決策(hard decision)」亦可稱作為一「硬輸出(hard output)」或「硬資訊(hard information)」。在各種實施例中,已知各硬決策之可靠度。一硬決策之「可靠度(reliablility)」係指對應硬決策為正確之一概率(自「0」至「1」之一值)。一「可靠度」亦可稱作為「軟資訊(soft information)」或一「軟輸出(soft output)」。如下文將進一步詳細描述,可使用可靠度偵測錯誤校正。例如,在一NAND通道中,藉由使用不同臨限值之多個讀取獲取各位元之一可靠度。
在各種實施例中,接收對應於一碼字之複數個讀取值。例如,對應於待解碼之一碼字之複數個讀取值包括對應於該碼字之硬決策。接收對應於複數個讀取值之各者之複數個可靠度。例如,複數個可靠度包括針對對應於該碼字之硬決策之各者之對應軟資訊。接收對應於複數個讀取值之一或多者之
一或多個經提出校正。例如,經提出校正包括針對硬決策之特定位置(位元)之經提出位元翻轉。例如,自一硬決策解碼器或一軟決策解碼器接收經提出校正,如下文將進一步詳細描述。基於對應於與經提出校正之位置相關聯之複數個讀取值之一或多者之該等複數個可靠度判定一錯誤校正度量。在一些實施例中,是否將經提出校正應用於複數個讀取值係基於比較經判定錯誤校正度量與一錯誤校正臨限值。藉由比較錯誤校正度量與一臨限值,可判定是否適於阻止將經提出校正應用於複數個讀取值以潛在地避免輸出實際係一錯誤校正之一可校正碼字,如下文將進一步詳細描述。
在過去,TPC由於具有針對低編碼/解碼複雜度之其等顯著效能改良已廣泛用於無線通訊中。類似地,基於NAND之儲存裝置要求可提供具有低實施複雜度之高效能增益之一錯誤校正編碼(error correction coding,ECC)方案。如此,TPC係用於NAND快閃應用之一可行選項。在一些例子中,TPC將經編碼資料配置於邏輯列及行中。如此,在解碼期間,解碼各列(或行)之讀取資料片段且接著解碼各行(或列)以增大成功解碼在解碼之一後續迭代中之一讀取資料片段。解碼可迭代且重複地處理資料讀取片段之列及行以輸出盡可能多之可校正碼字。若硬決策解碼失敗,則可進行多個讀取以得到位元之軟資訊。可將此軟資訊用於解碼失敗頁。在過去即使在TPC中使用軟資訊,解碼器仍不是直接的且未經完全探討。在一些實施例中,可將錯誤校正偵測搭配解碼與TPC相關聯之碼字使用。
第2圖係顯示用於使用可靠度資訊之錯誤校正碼之錯誤校正偵測之一系統之一圖式。在該例子中,系統200包含錯誤校正解碼器202及錯誤校正偵測器204。可使用或藉由一半導體裝置(諸如,一場可程式化閘陣列(field programmable gate array,FPGA)或一特定應用積體電路(application specific integrated circuit,ASIC)來實施錯誤校正解碼器202及錯誤校正偵測器204之任一
者或兩者。
在一些實施例中,錯誤校正解碼器202包括一成分解碼器。例如,錯誤校正解碼器202可係與TPC解碼相關聯之成分(即,列或行)解碼器之一者。例如,錯誤校正解碼器202包括一BCH解碼器。錯誤校正解碼器202經組態以接收對應於一碼字(例如,使用一成分碼編碼)之一組硬決策作為一輸入。在各種實施例中,一組硬決策對應於當前被解碼之一碼字。例如,可自一記憶體接收或自一媒體讀取該組之硬決策。該組之硬決策包括一連串位元。在錯誤校正解碼器202判定硬決策輸入組為可校正之情況下,錯誤校正解碼器202輸出針對硬決策輸入組之一或多個經提出校正。若經提出之一或多個校正應用於該組之硬決策,則該修正組之硬決策將包括一可校正碼字(或有時稱作為一「經解碼碼字」)。
經提出校正包括經提出位元翻轉,其中各經提出位元翻轉對應於錯誤校正解碼器202提出翻轉其值(「0」或「1」)之硬決策組內之一位置。例如,設想一經提出位元翻轉與關聯於「1」之一值之硬決策輸入組內之一位置相關聯。若將經提出位元翻轉應用於該位置處之值,則該位置之值將改變至「0」。相反地,設想一經提出位元翻轉與關聯於「0」之一值之硬決策輸入組內之一位置相關聯。若將經提出位元翻轉應用於該位置處之值,則該位置之值將改變至「1」。在一些實施例中,藉由錯誤校正解碼器202輸出之經提出校正的數目係由與所使用碼之類型相關聯之一參數(例如,藉由錯誤校正解碼器202輸出之經提出校正之數目由BCH碼之T限制)及/或與錯誤校正解碼器202相關聯之解碼器的類型所限制。
在一些實施例中,錯誤校正解碼器202可係一硬決策解碼器或一軟決策解碼器。在一些實施例中,若錯誤校正解碼器202包括一軟決策解碼器(例如,一Chase解碼器),則除硬決策組之輸入之外,錯誤校正解碼器202亦
將接收對應於該組硬決策之一組可靠度(圖式中未顯示)作為一輸入。下文進一步詳細描述使用具有Chase解碼之錯誤校正偵測之例子。無關於錯誤校正解碼器202包括一硬決策解碼器或一軟決策解碼器,錯誤校正解碼器202輸出針對錯誤校正解碼器202判定可校正之一硬決策輸入組之至少一或多個經提出校正。
儘管將藉由錯誤校正解碼器202輸出之經提出校正應用於硬決策組可導致一可校正碼字,然而所得碼字可係不同於經傳輸碼字之一碼字。換言之,在一些例子中,藉由錯誤校正解碼器202輸出之經提出校正之應用可導致錯誤校正。如下文中將描述,可在錯誤校正偵測器204判定針對硬決策組之經提出校正可導致一錯誤校正之情況下,阻止將藉由錯誤校正解碼器202輸出之經提出校正應用於硬決策組。
錯誤校正偵測器204經組態以判定對應於由錯誤校正解碼器202判定之一可校正碼字(例如,使用一成分碼編碼)之一錯誤校正度量。可校正碼字係將由錯誤校正解碼器202提出之校正應用於硬決策輸入組之結果。錯誤校正偵測器204經組態以基於對應於輸入至錯誤校正解碼器202之該組硬決策之一輸入組之可靠度判定錯誤校正度量。接著,錯誤校正偵測器204經組態以使用經判定錯誤校正度量判定是否適於將藉由錯誤校正解碼器202輸出之經提出校正應用於該組硬決策以產生可校正碼字。在各種實施例中,錯誤校正偵測器204識別對應於已經提出由錯誤校正解碼器202校正之該組硬決策之該等位置之該組可靠度之可靠度,以產生可校正碼字。錯誤校正偵測器204基於組合對應於已提出待校正之該組硬決策之該等位置之該組可靠度之經識別可靠度判定錯誤校正度量。錯誤校正偵測器204經組態以使用此錯誤校正度量判定針對該組硬決策之經提出校正,將可能導致一正確可校正碼字或一經錯誤校正之可校正碼字。因為容許輸出一經錯誤校正之可校正碼字可產生後續解碼失敗或錯誤,所以在錯誤校正偵測器204判定針對該組硬決策之經提出校正將可能導致一經錯
誤校正之可校正碼字之情況下,錯誤校正偵測器204經組態以阻止將經提出校正應用/提交至該組硬決策及引起輸出碼字之一不可校正狀態。即使輸出碼字之一不可校正狀態,仍設想潛在地避免一錯誤校正,其可降低解碼之整體失敗率。
否則,在錯誤校正偵測器204判定針對該組硬決策之經提出校正將可能不導致一經錯誤校正之可校正碼字之情況下,錯誤校正偵測器204經組態以容許將經提出校正應用於該組硬決策及引起輸出可校正碼字。
在一些實施例中,錯誤校正偵測器204經組態以基於比較錯誤校正度量與一錯誤校正臨限值判定是否適於將藉由錯誤校正解碼器202輸出之經提出校正應用於該組硬決策。例如,可藉由一系統管理員組態錯誤校正臨限值。在一些實施例中,可回應於一或多個事件調整錯誤校正臨限值之值。例如,可調整錯誤校正臨限值之值以隨解碼迭代之數目增大而降低或隨當前訊雜比(signal to noise ration,SNR)增大而增大。在一些實施例中,若錯誤校正偵測器204判定錯誤校正度量小於或等於錯誤校正臨限值,則容許將經提出校正應用於該組硬決策及引起輸出可校正碼字。否則,若錯誤校正偵測器204判定錯誤校正度量大於錯誤校正臨限值,則阻止將經提出校正應用於該組硬決策及引起輸出碼字之一不可校正狀態。
因此,可將錯誤校正偵測器204添加至一解碼器及/或與一解碼器組合以降低錯誤校正率。
第3圖係顯示用於使用可靠度資訊判定一錯誤校正度量之一程序之一實施例之一流程圖。在一些實施例中,藉由與一儲存控制器(例如,一NAND快閃控制器)相關聯之一讀取控制器執行程序300。在一些實施例中,藉由一半導體裝置(諸如,一場可程式化閘陣列(FPGA)或一特定應用積體電路(ASIC))執行程序300。在一些實施例中,在諸如第2圖之系統200之一系統處實施程序300。
在302處,接收對應於複數個讀取值之各自者之複數個可靠度,其中複數個讀取值對應於一碼字。在各種實施例中,複數個讀取值包括對應於待解碼之一碼字(例如,使用一成分碼編碼)之一組硬決策(例如,一連串位元)。接收一組可靠度(軟資訊),其中各可靠度包括對應於該組硬決策中之一特殊位元位置之一概率。
在304處,接收對應於複數個讀取值之一或多者之一或多個經提出校正。在各種實施例中,一錯誤校正解碼器判定該組硬決策係可校正的,且因此提出針對該組硬決策之一或多個校正。若將經提出校正應用於該組硬決策,則可輸出一可校正碼字(例如,一經解碼碼字)。在一些實施例中,解碼器可係一硬決策解碼器或一軟決策解碼器。各經提出校正包括針對該組硬決策中之一特殊位元位置之一經提出位元翻轉。在一些實施例中,解碼器包括一成分解碼器。
在306處,至少部分基於對應於複數個讀取值之一或多者之複數個可靠度之一或多者判定一錯誤校正度量。在各種實施例中,藉由組合對應於與經提出校正相關聯之硬決策組之位置之可靠度判定錯誤校正度量。例如,組合對應於與經提出校正相關聯之該組硬決策之位置之可靠度可將對應於與經提出校正相關聯之該組硬決策之位置之可靠度之各者之絕對值相加在一起。在一些實施例中,比較錯誤校正度量與一錯誤校正臨限值以判定是否應將經提出校正應用於該組硬決策以產生可校正碼字,或不應將其應用於該組硬決策以產生一不可校正碼字狀態。
第4圖係顯示用於使用可靠度資訊之錯誤校正碼之錯誤校正偵測之一程序之一實施例之一流程圖。在一些實施例中,藉由與一儲存控制器(例如,一NAND快閃控制器)相關聯之一讀取控制器執行程序400。在一些實施例中,由一半導體裝置(諸如,一場可程式化閘陣列(FPGA)或一特定應用積體電路
(ASIC))執行程序400。在一些實施例中,在諸如第2圖之系統200之一系統處實施程序400。
在402處,判定對應於針對對應於一(下一個)碼字之複數個讀取值之一或多個經提出校正之一錯誤校正度量。一解碼器已判定複數個讀取值(例如,一組硬決策)為可校正,且因此輸出針對該組硬決策之對應位置之一或多個經提出校正。可基於對應於與由解碼器提出之校正相關聯之該組硬決策之位置之可靠度判定錯誤校正度量。在一些實施例中,至少部分基於使用諸如第3圖之程序300之一程序判定錯誤校正度量。
在404處,判定錯誤校正度量小於或等於一錯誤校正臨限值。例如,可由一系統管理員組態錯誤校正臨限值之值。例如,可基於一或多個事件調整錯誤校正臨限值之值。在錯誤校正度量小於或等於一錯誤校正臨限值之情況下,控制轉移至406。否則,在錯誤校正度量大於一錯誤校正臨限值之情況下,控制轉移至410。
在406處,將一或多個經提出校正應用於複數個讀取值以獲取一可校正碼字。因為錯誤校正度量小於或等於錯誤校正臨限值,且因此判定將藉由解碼器提出之校正應用於複數個讀取值將可能不產生一錯誤校正,所以將經提出校正應用於複數個讀取值以獲取一可校正碼字,在408處輸出該可校正碼字。
在410處,不將一或多個經提出校正應用於複數個讀取值。因為錯誤校正度量大於錯誤校正臨限值,且因此判定將經提出校正應用於複數個讀取值將可能產生一經錯誤校正之可校正碼字,所以不將經提出校正應用於複數個讀取值,且判定碼字為不可校正。在412處,輸出一碼字不可校正狀態。
在414處,判定是否存在至少一個以上之碼字要解碼。在存在至少一個以上之碼字要解碼之情況下,控制返回至402,其中判定用於與待解碼
之下一個碼字相關聯之複數個讀取值之錯誤校正度量。否則,在不存在碼字要解碼之情況下,程序400結束。
設想經編碼碼字係x=(x0,x1,...,xn-1),xi=0或1,其中n係碼之碼字長度。可將經接收向量表示為r=(r0,r1,...,rn-1)。解碼器將經接收向量r解碼成向量,其包含來自經接收向量r之一個以上之位元翻轉。現考量在解碼器解碼至之情況下x不等於之概率: P(x≠ |r)。若設想碼字中之位元獨立且將該概率分解至各位元,則可將該概率寫為:
概率將受制於x與不相同之該等位元。若概率相對較大,則可能錯誤校正經接收向量。為更實用,使用對數似然比(log-likelihood ration,LLR)而非概率導出一度量。設想可將之各位元之可靠度(例如,之各位元之對數似然比(LLR)寫為y=(y 0,y 1,...,y n-1),其中y i =log(p(x i =0|r i )/p(x i =1|r i ))。可將錯誤校正度量(θ)寫為:
由於接收器側不知經傳輸碼字,故使用通道輸出之硬決策向量z,其被定義為:
因此,等式(2)中之度量可分解成三項:
第一項係在解碼期間經翻轉之該等位元(z i ≠,其中i=0,1,...,n-1)之可靠度之總和。第二項包含不正確但經解碼碼字未校正其等之該等位元(z i ≠,x i ≠,其中i=0,1,...,n-1)。此第二項應加至第一項。第三項包含藉由經解碼碼字校正之該等位元,其等亦為錯誤(z i ≠,x i =,其中i=0,1,...,n-1)。此第三項應自第一項減去。通常,第二及第三項來自具有小可靠度之該等位元。
因此,可藉由忽略第二及第三項而簡化錯誤校正度量(θ),僅留下(4)之第一項:
在本文中描述之各種實施例中稱作為「錯誤校正度量」之此度量可相當好地區分經錯誤校正之碼字與正確碼字。一錯誤校正偵測器可在(5)中之錯誤校正度量(θ)上使用一錯誤校正臨限值(A)偵測錯誤校正。例如,若θA,則錯誤校正偵測器可判定應應用經提出之位元翻轉而判定碼字為可校正。否則,若θ>A,則錯誤校正偵測器可判定不應應用經提出之位元翻轉,且替代地判定碼字為不可校正。可將錯誤校正偵測器添加至一解碼器及/或與一解碼器組合以降低錯誤校正率。
在各種實施例中,取決於應用,可選擇錯誤校正臨限值A以更嚴格或寬鬆地篩選出錯誤校正。例如,在一TPC解碼案例中,由於可在稍後迭代中進一步校正不可校正者,故可在列/行解碼迭代之開始時嚴格設定錯誤校正臨限值A,且接著在接近解碼之結束時設定更寬鬆,以避免其中碼字實際為可校正,但常常由錯誤校正偵測器報告為不可校正之一困境。
第5圖顯示與一碼字相關聯之一組硬決策及一對應組之可靠度。在例子中,使用具有參數T=3之BCH碼編碼碼字,該參數指示對應解碼器可提出針對與碼字相關聯之硬決策組z之至多三個校正(例如,位元翻轉)。在該例子中,碼字之長度為n且硬決策組z之位元與位置i=0,1,...,n-1相關聯。硬決策組z中之各位元與可靠度組y中之一對應可靠度相關聯。例如,硬決策z0對應於可靠度y0。
例如,一硬決策錯誤校正解碼器(僅使用硬決策解碼之一解碼器)可接收如第5圖中所示之一硬決策輸入組z,且將經提出位元翻轉輸出至z之位置i=3、6及8處(藉由圖式中之一較粗邊框指示硬決策組z中之此等位置)。接著,一錯誤校正偵測器可實施上文第3圖之程序300,以基於對應於由硬決策錯
誤校正解碼器提出之位元翻轉的可靠度來判定錯誤校正度量。在此例子中,對應於z3、z6及z8處之經提出位元翻轉的可靠度分別係y3、y6及y8。例如,錯誤校正偵測器可特別使用上文(5)之錯誤校正度量公式()來實施第4圖之程序400,以判定θ=|y 3|+|y 6|+|y 8|。在一些實施例中,為判定是否應應用z 3 、z 6 及z 8 處之經提出位元翻轉以獲取一可校正碼字,錯誤校正偵測器經組態以比較θ與錯誤校正臨限值A。若θ A,則允許經提出位元翻轉且輸出一可校正碼字。但若θ>A,則不允許經提出位元翻轉且輸出一不可校正狀態。
第6圖係用於一AWGN通道中由T=3、n=1023之一BCH碼之一硬決策BCH解碼器之正確校正及錯誤校正之錯誤校正度量之一例示性直方圖。第6圖顯示在可校正1023位元中至多三個錯誤之一BCH碼之碼字係正確且經錯誤校正之情況下等式(5)中之錯誤校正度量之直方圖之一繪圖之一例子。通道係各位元具有一可靠度之一AWGN通道。BCH解碼器係一標準硬決策解碼器,其僅使用來自通道之硬決策解碼。包含兩個不同SNR,SNR=3dB及SNR=4dB。可見最佳錯誤校正臨限值A針對不同SNR僅移動一點點。然而,錯誤校正臨限值A之最佳值針對一較高SNR可更高,且針對一較低SNR為更低。如直方圖中所示,可選擇錯誤校正臨限值A的所要值低於經模擬之經錯誤校正碼字之大部分(或一特定比例)的對應錯誤校正度量。因此,可避免藉由選擇錯誤校正臨限值A之一所要值而輸出大多數經錯誤校正的碼字。
在一些實施例中,可搭配硬決策解碼器及軟決策解碼器使用錯誤校正度量。亦可使用一軟決策解碼器產生針對一組硬決策之經提出校正。不同於僅使用來自通道之硬決策解碼之一硬決策解碼器,一軟決策解碼器使用硬決策及對應軟決策(可靠度)之兩者解碼。在一些實施例中,可在不能使用一硬決策解碼器成功執行解碼時使用一軟決策解碼器。一軟決策解碼器之一例子係Chase解碼器。Chase解碼可增大一硬決策解碼器可接收可能解碼成正確碼字之
一輸入位元序列之機會。下文描述使用一軟決策解碼器(一Chase解碼器)判定錯誤校正度量之一例子。
Chase解碼例子
第7圖係描述使用一軟決策BCH解碼器解碼之一例示性程序之一流程圖。在例子中,藉由一Chase-m解碼器(下文使用第8圖更詳細描述其之一例子)實施程序700。Chase-m解碼器包含至少一翻轉組件及一硬決策錯誤校正解碼器組件。在一些實施例中,藉由與一儲存控制器(例如,一NAND快閃控制器)相關聯之一讀取控制器執行程序700。在一些實施例中,藉由一半導體裝置(諸如,一場可程式化閘陣列(FPGA)或一特定應用積體電路(ASIC))執行程序700。在一些實施例中,在諸如第2圖之系統200之一系統處實施程序700。
在702處,至少部分基於Chase解碼器參數m及對應於與一碼字相關聯之複數個讀取值之各自者之複數個可靠度判定對應於複數個讀取值之複數個位元序列。在一些實施例中,Chase解碼器接收複數個讀取值(例如,一組硬決策)及對應複數個可靠度(一可靠度對應於該組硬決策之各者)作為輸入。可選擇參數m為任何整數。在BCH碼之Chase解碼中,藉由Chase解碼器之一翻轉組件使用該組可靠度識別硬決策輸入組中之最不可靠位元之m個位置。接著,藉由Chase解碼器之翻轉組件進行硬決策輸入組之m個最不可靠位元之所有可能位元翻轉,以形成2m個之位元序列。各位元序列包括0及更多經識別m個位元位置處之值經翻轉之硬決策輸入組。
在704處,自解碼複數個位元序列判定一候選經解碼位元序列組。可將位元序列候選組表示為K={k(j),j=0,1,...,2m-1}。該組2m個位元序列之各者被饋送至Chase解碼器之一硬決策錯誤校正解碼器組件中。接著,Chase解碼器之硬決策錯誤校正解碼器組件嘗試解碼2m個位元序列之各者。對於各解碼嘗試,存在兩種可能:若解碼器斷定輸入位元序列為不可校正,則放棄特殊解碼
嘗試。若解碼器斷定輸入位元序列為可校正,則解碼器將提出針對輸入位元序列之一或多個位元翻轉。設想Chase解碼器之硬決策錯誤校正解碼器組件係具有T=3之一BCH解碼器,則解碼器可提出需要翻轉之可校正輸入位元序列之至多T個之位置。注意藉由解碼器指示之位元翻轉之位置(例如,T個)可係碼字中之任何地方,不僅在m個最不可靠位置。X={,j=0,1,...,1,其中12m}之組表示藉由Chase解碼器之硬決策錯誤校正解碼器組件輸出之經解碼位元序列組。因為不是全部位元序列可係可解碼的,故經解碼位元序列之數目1可小於位元序列之總數目2m。此外,由於多個位元序列可解碼成相同碼字,所以X組之經解碼位元序列之至少一些不係不同。可將X組之經解碼位元序列視為「候選碼字」或「候選經解碼位元序列」,自其等選擇一者且將其藉由Chase解碼器輸出。
在706處,自候選經解碼位元序列組選擇一經解碼位元序列,其中選定經解碼位元序列包含對應於複數個讀取值之一或多者之一或多個經提出校正。若經解碼X組為空,則碼字係不可校正的。若X不為空,則可自候選經解碼位元序列組選擇一經解碼位元序列以自Chase解碼器輸出且用以判定錯誤校正度量。例如,自X組選擇經解碼位元序列使得其具有距經接收向量最小之歐幾里德距離。在一些實施例中,「經接收向量」包括輸入至Chase解碼器之硬決策組。在另一例子中,自X組選擇具有最高可靠度之經解碼位元序列。
注意硬決策輸入組之m個最不可靠位置係藉由Chase解碼器之翻轉組件翻轉。接著,Chase解碼器之硬決策錯誤校正解碼器組件翻轉硬決策輸入組之至多T個之更多位置。因此,X組之候選經解碼位元序列之各者(包含選定經解碼位元序列)可與硬決策組不同至多(T+m)個位置。其中位元在硬決策輸入組與選定經解碼位元序列之間不同之至多(T+m)個位置形成藉由Chase解碼器輸出至硬決策輸入組之經提出校正組。
在708處,至少部分基於對應於複數個讀取值之一或多者之複數個可靠度之一或多者判定一錯誤校正度量。識別對應於其中一位元值在硬決策輸入組與選定經解碼位元序列之間不同之至多(T+m)個之經提出校正之各者之可靠度。接著,組合所有經識別可靠度以判定錯誤校正度量(例如,θ)。換言之,在硬決策輸入組與選定經解碼位元序列之間之所有差異上計算錯誤校正度量,因此,錯誤校正度量之計算可組合對應於針對硬決策組之至多(T+m)個之經提出校正之可靠度。
在各種實施例中,可藉由諸如第3圖之程序300之一程序實施708。接著,可使用經判定之錯誤校正度量判定輸出經解碼位元序列或輸出一不可校正狀態且無經解碼碼字以避免一潛在錯誤校正。在一些實施例中,可使用諸如第4圖之程序400之一程序實施此錯誤校正偵測。
一Chase解碼器之校正能力隨著大的m值而增大,但Chase解碼器之複雜度亦隨著更高的m值而指數增大。因此,在一些實施例中,期望具有一較小之m值。Chase解碼可加劇錯誤校正問題,此係因為藉由翻轉至多m個之經接收位元,實際上可添加錯誤。因此,儘管一正常錯誤校正(例如,經由一BCH硬決策解碼器)可將最多T個位元錯誤引入(透過錯誤校正)至解碼矩陣中,然而Chase-m可添加至多(T+m)個錯誤。
第8圖係顯示一Chase-m解碼器及一錯誤校正偵測系統之一圖式。在例子中,系統800包含至少包括Chase解碼翻轉器802、硬決策錯誤校正解碼器804及選擇器806之Chase-m解碼器。系統800亦包含錯誤校正偵測器808。在一些實施例中,可使用Chase解碼翻轉器802、硬決策錯誤校正解碼器804及選擇器806實施第2圖之系統200之錯誤校正解碼器202。在一些實施例中,可使用錯誤校正偵測器808實施第2圖之系統200之錯誤校正偵測器204。
Chase解碼翻轉器802經組態以基於可靠度組y識別硬決策組z
之m個最不可靠位元,其中可靠度組y之各者對應於硬決策組z之一對應者之概率。在例子中,選擇m為2。藉由在硬決策組z之經識別m=2個位置處進行位元翻轉之不同可能而產生2m=2(=4)個位元序列k(0)、k(1)、k(2)及k(3)。在例子中,藉由將硬決策組z與包含在經識別m=2個位置之「0」及「1」之不同可能及在所有其他位置之「0」之一對應t向量(t(0)、t(1)、t(2),及t(3))組合(例如,XOR)而建構位元序列k(0)、k(1)、k(2)及k(3)之各者。將經建構位元序列k(0)、k(1)、k(2)及k(3)各輸入至硬決策錯誤校正解碼器804中。硬決策錯誤校正解碼器804經組態以判定可解碼位元序列k(0)、k(1)、k(2)及k(3)之何者。在例子中,設想可解碼位元序列k(0)、k(1)、k(2)及k(3)之各者,且因此,硬決策錯誤校正解碼器804輸出各自候選經解碼位元序列、、及。在例子中,硬決策錯誤校正解碼器804包括具有參數T之一BCH解碼器。候選經解碼位元序列、、及之各者包含與硬決策組z之至多(T+m)個之淨差異(歸因於來自Chase解碼翻轉器802之至多m之數目之位元翻轉及來自硬決策錯誤校正解碼器804之至多T之數目之位元翻轉)。選擇器806經組態以基於與Chase解碼器相關聯之選擇準則選擇候選經解碼位元序列、、及之一者。例如,選擇準則可經組態以選擇具有至硬決策組z最小歐幾里德距離之經解碼位元序列,或選擇準則可經組態以選擇具有最高可靠度之經解碼位元序列。
在例子中,藉由選擇器806選擇經解碼位元序列作為Chase解碼器之輸出。接著,將選定經解碼位元序列輸入至錯誤校正偵測器808中。亦將可靠度組y輸入至錯誤校正偵測器808中。在各種實施例中,錯誤校正偵測器808經組態以識別其中位元在硬決策組z與選定經解碼位元序列之間不同之至多(T+m)個位置。其中位元不同之此等至多(T+m)個之位置包括由Chase解碼器提出之針對硬決策組z之校正組。錯誤校正偵測器808經組態以基於對應於藉由Chase解碼器提出之針對硬決策組z之經識別至多(T+m)個之淨位元
翻轉之可靠度組y之可靠度計算一錯誤校正度量。錯誤校正偵測器808經組態以基於錯誤校正度量判定是否應應用/提交藉由Chase解碼器提出之針對硬決策組z之至多(T+m)個淨位元翻轉。在一些實施例中,錯誤校正偵測器808經組態以比較錯誤校正度量與一錯誤校正臨限值以基於錯誤校正度量判定是否應應用/提交藉由Chase解碼器提出之針對硬決策組z之至多(T+m)個位元翻轉。在一些實施例中,若錯誤校正偵測器808判定錯誤校正度量小於或等於錯誤校正臨限值,則容許將藉由Chase解碼器提出之位元翻轉提交至硬決策組z,且引起輸出選定經解碼位元序列作為一可校正碼字。否則,若錯誤校正偵測器808判定錯誤校正度量大於錯誤校正臨限值,則阻止將經提出之校正提交至硬決策組z且引起輸出碼字之一不可校正狀態。在一些實施例中,錯誤校正偵測器808經組態以執行第3圖之程序300及第4圖之程序400之至少一者。
第9圖顯示與一碼字相關聯之一組硬決策及一對應組之可靠度及Chase解碼中之經識別m個位元。在例子中,碼字具有長度n且硬決策組z之位元與位置i=0,1,...n-1相關聯。硬決策組z中之各位元與可靠度組y中之一對應可靠度相關聯。例如,硬決策z0對應於可靠度y0。在例子中,m=2且硬決策組z之兩個最不可靠位元與位置i=6及8(位置6及8各在硬決策組z中使用一粗底線指示)相關聯。參考回第8圖之例子,為產生2m=2(=4)個位元序列k(0)、k(1)、k(2)及k(3),建構向量t(0)、t(1)、t(2),及t(3)。如例子中所示,向量t(0)、t(1)、t(2),及t(3))之各者包含「0」及「1」在位置i=6及8處及「0」在除位置i=6及8之外之所有其他位置處之不同可能。因此,可藉由將硬決策組z與各自向量t(0)、t(1)、t(2),及t(3)之各者組合(例如,XOR)而產生位元序列k(0)、k(1)、k(2)及k(3)。因此,位元序列k(0)、k(1)、k(2)及k(3)之各者包含位置i=6及8處之位元翻轉之一不同可能。
第10圖顯示輸入至一Chase解碼器之一硬決策錯誤校正BCH
解碼器(T=3)中之一位元序列及藉由Chase解碼器輸出之經解碼位元序列。在例子中,使用具有參數T=3之BCH碼編碼碼字,該參數指示Chase解碼器之硬決策錯誤校正解碼器組件可提出針對各輸入位元序列之至多三個校正(例如,位元翻轉)。藉由組合(例如,XOR)來自第9圖之硬決策組z及向量t(3)之Chase解碼器之翻轉組件產生位元序列k(3)。因此,位元序列k(3)包括在位置i=6處具有一位元翻轉(在圖式中將經翻轉位元指示為z6’)之硬決策組z。藉由硬決策錯誤校正BCH解碼器(T=3)之輸出係第8圖之例子之經解碼位元序列。經解碼位元序列包括具有藉由硬決策錯誤校正BCH解碼器進行之針對位置i=1、5及6之位元翻轉(在圖式中藉由較粗邊框指示此等經翻轉位元之位置)之位元序列k(3)。繼續第8圖之例子,經解碼位元序列自藉由Chase解碼器輸出之一候選經解碼位元序列組中選擇且用以判定錯誤校正度量。一錯誤校正偵測器(例如,第8圖之錯誤校正偵測器808)可實施上文第3圖之程序300以基於對應於針對硬決策組z而進行之淨位元翻轉之可靠度藉由使用Chase解碼器之翻轉組件及Chase解碼器之硬決策錯誤校正解碼器組件處理硬決策組z以輸出經解碼位元序列(3)判定錯誤校正度量。在此例子中,儘管藉由Chase解碼器之翻轉組件將硬決策組z之z6翻轉成z6’,然而z6藉由Chase解碼器之硬決策錯誤校正解碼器組件翻轉回z6’。因此,在硬決策組z之位置i=6處未發現淨位元翻轉,且因此將不使用對應於z6之可靠度y6判定錯誤校正度量。然而,可在位置i=1及5處發現針對硬決策組z之淨位元翻轉,且因此使用對應於位置i=1及5之可靠度判定錯誤校正度量。對應於z1及z5處之位元翻轉之可靠度分別係y1及y5。例如,錯誤校正偵測器(例如,第8圖之錯誤校正偵測器808)可使用上文(5)之錯誤校正度量公式()判定θ=|y 1|+|y 5|明確實施第4圖之程序400。在一些實施例中,為判定是否應容許針對z1及z5之淨位元翻轉以獲取一可校正碼字,錯誤校正偵測器(例如,第8圖之錯誤校正偵測器808)經組態以比較θ與錯
誤校正臨限值A。若θ A,則允許位元翻轉且輸出經解碼位元序列。但若θ>A,則不允許位元翻轉且輸出一不可校正狀態。
第11圖顯示錯誤校正偵測之一例示性效能曲線且如所示其幾乎重疊genie解碼曲線。如自例子中可見,由於解碼程序中之錯誤校正之添加(例如,若錯誤校正偵測器判斷一碼字為錯誤校正的,則該碼字將不被校正),故解碼幾乎效能匹配genie解碼器之解碼。
可使用錯誤校正偵測改良解碼之效能。可將錯誤校正偵測與硬決策解碼或軟決策解碼組合。在各種實施例中,基於臨限值執行錯誤校正偵測。錯誤校正偵測可係靈活的,此係因為錯誤校正臨限值可經選擇以更嚴格或寬鬆地篩選出且亦可隨著時間或回應於特定事件而調整。
儘管為清楚理解之目的已相當詳細描述前述實施例,然而本發明不限於所提供之細節。存在實施本發明之許多替代方式。所揭示實施例為圖解說明性且非限制性。
400‧‧‧程序
402~414‧‧‧步驟
Claims (21)
- 一種使用位元可靠度之錯誤校正碼的錯誤校正偵測之系統,其包括:一錯誤校正解碼器,其經組態以:至少部分基於Chase解碼器參數m及對應複數個讀取值之各自者之複數個可靠度,產生對應於該等讀取值之一或多者之一或多個經提出校正,其中該等讀取值對應於一碼字;及一錯誤校正偵測器,其經組態以:接收對應於該等讀取值之各自者之該等可靠度;接收對應於該等讀取值之該一或多者之該一或多個經提出的校正;及至少部分基於對應於該等讀取值之該一或多者之該等可靠度的一或多者來判定一錯誤校正度量。
- 如請求項1所述之系統,其中該系統包含一半導體裝置,該半導體裝置包含下列之一或多者:一場可程式化閘陣列(field programmable gate array,FPGA)或一特定應用積體電路(application specific integrated circuit,ASIC)。
- 如請求項1所述之系統,其中該等讀取值包括複數個硬決策。
- 如請求項1所述之系統,其中該一或多個經提出校正包括對應於該等讀取值內之一或多個位置之一或多個經提出位元翻轉。
- 如請求項1所述之系統,其中該等可靠度之至少一者包括一對數似然比(log-likelihood ratio,LLR)。
- 如請求項1所述之系統,其中至少部分基於對應於該等讀取值之該一或多者之該等可靠度之該一或多者來判定該錯誤校正度量包括組合該等可靠度之該一或多者之絕對值。
- 如請求項1所述之系統,其中該錯誤校正偵測器進一步經組態以:比較該錯誤校正度量與一錯誤校正臨限值,其中:在該錯誤校正度量小於或等於該錯誤校正臨限值之情況下,將該一或多 個經提出的校正應用於該等讀取值,以獲取一可校正碼字且輸出該可校正碼字;及在該錯誤校正度量大於該錯誤校正臨限值之情況下,不將該一或多個經提出的校正應用於該等讀取值且輸出一碼字不可校正狀態。
- 如請求項7所述之系統,其中該錯誤校正臨限值可回應於下列之一或多者而調整:解碼迭代中之一改變及訊雜比(signal to noise ratio,SNR)中之一改變。
- 如請求項1所述之系統,其中使用一渦輪乘積碼(turbo product code,TPC)來編碼該碼字。
- 如請求項1所述之系統,其中該錯誤校正解碼器進一步經組態以:至少部分基於該Chase解碼器參數m及該等可靠度來判定對應於該等讀取值之複數個位元序列;自解碼該等位元序列判定一候選經解碼位元序列組;及自該候選經解碼位元序列組選擇一經解碼位元序列,其中該選定經解碼位元序列包含該一或多個經提出的校正。
- 如請求項10所述之系統,其中該選定經解碼位元序列係至少部分基於該選定經解碼位元序列對應於一校正碼字之一可靠度而自該候選經解碼位元序列組選擇。
- 如請求項10所述之系統,其中該選定經解碼位元序列係至少部分基於該選定經解碼位元序列與該等讀取值之間之一歐幾里德距離而自該候選經解碼位元序列組選擇。
- 如請求項10所述之系統,其中該一或多個經提出校正包括該等讀取值與該選定經解碼位元序列之間之一或多個位元翻轉。
- 如請求項10所述之系統,其中該一或多個經提出校正包含藉由使用該錯誤校正解碼器之一翻轉組件位元翻轉至多該等讀取值之m個最不可靠位置,且接 著使用該錯誤校正解碼器之一硬決策錯誤校正解碼器組件位元翻轉至多T個位置來判定之針對該等讀取值之一或多個淨位元翻轉。
- 一種使用位元可靠度之錯誤校正碼的錯誤校正偵測之方法,其包括:至少部分基於Chase解碼器參數m及對應複數個讀取值之各自者之複數個可靠度,產生對應於該等讀取值之一或多者之一或多個經提出校正,其中該等讀取值對應於一碼字;接收對應於該等讀取值之各自者之該等可靠度;接收對應於該等讀取值之一或多者之一或多個經提出校正;及至少部分基於對應於該等讀取值之該一或多者之該等可靠度之一或多者來判定一錯誤校正度量。
- 如請求項15所述之方法,其中至少部分基於對應於該等讀取值之該一或多者之該等可靠度之該一或多者來判定該錯誤校正度量包括組合該等可靠度之該一或多者之絕對值。
- 如請求項15所述之方法,進一步包括:比較該錯誤校正度量與一錯誤校正臨限值,其中:在該錯誤校正度量小於或等於該錯誤校正臨限值之情況下,將該一或多個經提出校正應用於該等讀取值以獲取一可校正碼字且輸出該可校正碼字;及在該錯誤校正度量大於該錯誤校正臨限值之情況下,不將該一或多個經提出校正應用於該等讀取值且輸出一碼字不可校正狀態。
- 如請求項17所述之方法,其中該錯誤校正臨限值可回應於下列之一或多者而調整:解碼迭代中之一改變及訊雜比(SNR)中之一改變。
- 如請求項15所述之方法,進一步包括:至少部分基於該Chase解碼器參數m及該等可靠度來判定對應於該等讀 取值之複數個位元序列;自解碼該等位元序列判定一候選經解碼位元序列組;及自該候選經解碼位元序列組選擇一經解碼位元序列,其中該選定經解碼位元序列包含該一或多個經提出校正。
- 如請求項19所述之方法,其中該一或多個經提出的校正包括該等讀取值與該選定經解碼位元序列之間之一或多個位元翻轉。
- 如請求項19所述之方法,其中該一或多個經提出校正包含藉由位元翻轉至多該等讀取值之m個最不可靠位置,且接著位元翻轉至多該等讀取值之T個位置來判定之針對該等讀取值之一或多個淨位元翻轉。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361827428P | 2013-05-24 | 2013-05-24 | |
US201361857629P | 2013-07-23 | 2013-07-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201510717A TW201510717A (zh) | 2015-03-16 |
TWI516914B true TWI516914B (zh) | 2016-01-11 |
Family
ID=51936248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103117384A TWI516914B (zh) | 2013-05-24 | 2014-05-16 | 用於使用位元可靠度之錯誤校正碼的錯誤校正偵測之系統及方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9337873B2 (zh) |
CN (1) | CN105247793B (zh) |
TW (1) | TWI516914B (zh) |
WO (1) | WO2014197140A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113724774A (zh) * | 2021-09-14 | 2021-11-30 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
TWI777519B (zh) * | 2021-04-26 | 2022-09-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI808483B (zh) * | 2021-09-08 | 2023-07-11 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9231623B1 (en) * | 2013-09-11 | 2016-01-05 | SK Hynix Inc. | Chase decoding for turbo-product codes (TPC) using error intersections |
US9954556B2 (en) | 2015-02-25 | 2018-04-24 | SK Hynix Inc. | Scheme to avoid miscorrection for turbo product codes |
US9935659B2 (en) * | 2015-05-18 | 2018-04-03 | SK Hynix Inc. | Performance optimization in soft decoding for turbo product codes |
KR102296738B1 (ko) * | 2015-06-01 | 2021-09-01 | 삼성전자 주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 에러 정정 방법 |
KR20170000108A (ko) * | 2015-06-23 | 2017-01-02 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10218388B2 (en) | 2015-12-18 | 2019-02-26 | SK Hynix Inc. | Techniques for low complexity soft decoder for turbo product codes |
US10326477B2 (en) | 2015-12-30 | 2019-06-18 | SK Hynix Inc. | Techniques for miscorrection detection for constituent codewords in product codes |
US10090862B2 (en) | 2016-03-23 | 2018-10-02 | SK Hynix Inc. | Hybrid soft decoding algorithm for multiple-dimension TPC codes |
US10084485B2 (en) | 2016-03-23 | 2018-09-25 | SK Hynix Inc. | Soft decoder parameter optimization for product codes |
US10090865B2 (en) | 2016-03-23 | 2018-10-02 | SK Hynix Inc. | Performance optimization in soft decoding of error correcting codes |
US10303364B2 (en) | 2016-03-25 | 2019-05-28 | SK Hynix Inc. | Techniques for low-latency chase decoding of turbo product codes with soft information |
CN107733573B (zh) * | 2016-08-10 | 2022-03-01 | 中兴通讯股份有限公司 | 数据处理方法、装置及节点 |
KR20180069179A (ko) * | 2016-12-14 | 2018-06-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 에러 정정 방법 |
TWI632780B (zh) | 2016-12-30 | 2018-08-11 | 慧榮科技股份有限公司 | 解碼方法與相關解碼裝置 |
EP3596830A4 (en) * | 2017-03-15 | 2020-11-18 | Nokia Technologies Oy | EARLY TERMINATION WITH DISTRIBUTED CRC POLAR CODES |
KR102258140B1 (ko) * | 2017-07-06 | 2021-05-28 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템 |
KR20190036259A (ko) * | 2017-09-27 | 2019-04-04 | 에스케이하이닉스 주식회사 | 캘리브레이션 회로를 이용하는 전송 장치, 이를 포함하는 반도체 장치 및 시스템 |
US10715182B2 (en) * | 2018-07-27 | 2020-07-14 | Innogrit Technologies Co., Ltd. | Systems and methods for decoding error correcting codes with self-generated LLR |
KR20200016606A (ko) | 2018-08-07 | 2020-02-17 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 메모리 시스템 |
US11734107B2 (en) * | 2019-03-15 | 2023-08-22 | Kioxia Corporation | Decoding scheme for error correction code structure |
JP2023040796A (ja) | 2021-09-10 | 2023-03-23 | キオクシア株式会社 | メモリシステム |
CN114116137B (zh) * | 2021-12-03 | 2023-03-14 | 北京得瑞领新科技有限公司 | 存储***中纠错码的仿真方法及装置、存储介质、设备 |
KR102598093B1 (ko) * | 2022-01-04 | 2023-11-06 | 숭실대학교 산학협력단 | 비트 플리핑 장치, 방법 및 이를 위한 컴퓨터 판독가능 프로그램 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63228836A (ja) * | 1987-03-18 | 1988-09-22 | Mitsubishi Electric Corp | 通信システム |
US5222069A (en) * | 1990-09-20 | 1993-06-22 | Ampex Systems Corporation | Miscorrection arrangement for the concealment of misdetected or miscorrected digital signals |
JP3154607B2 (ja) * | 1993-12-28 | 2001-04-09 | 三菱電機株式会社 | 誤り訂正復号装置及び誤り訂正復号方法 |
JP2000215619A (ja) * | 1999-01-26 | 2000-08-04 | Matsushita Electric Ind Co Ltd | デ―タ誤り訂正装置 |
US20050120265A1 (en) | 2003-12-02 | 2005-06-02 | Pline Steven L. | Data storage system with error correction code and replaceable defective memory |
US20060156171A1 (en) | 2004-12-15 | 2006-07-13 | Seagate Technology Llc | Combining spectral shaping with turbo coding in a channel coding system |
JP4700562B2 (ja) | 2006-05-18 | 2011-06-15 | 株式会社バッファロー | データ記憶装置およびデータ記憶方法 |
US8108759B2 (en) | 2006-12-14 | 2012-01-31 | Regents Of The University Of Minnesota | Error detection and correction using error pattern correcting codes |
US8055982B2 (en) * | 2007-02-21 | 2011-11-08 | Sigmatel, Inc. | Error correction system and method |
US8255760B2 (en) | 2008-11-05 | 2012-08-28 | Broadcom Corporation | Header encoding for single carrier (SC) and/or orthogonal frequency division multiplexing (OFDM) using shortening, puncturing, and/or repetition |
US8713413B1 (en) * | 2010-02-09 | 2014-04-29 | Sk Hynix Memory Solutions Inc. | Generation of interpolated samples for decision based decoding |
US8700970B2 (en) | 2010-02-28 | 2014-04-15 | Densbits Technologies Ltd. | System and method for multi-dimensional decoding |
US8510639B2 (en) * | 2010-07-01 | 2013-08-13 | Densbits Technologies Ltd. | System and method for multi-dimensional encoding and decoding |
-
2014
- 2014-04-29 US US14/265,249 patent/US9337873B2/en active Active
- 2014-04-30 WO PCT/US2014/036181 patent/WO2014197140A1/en active Application Filing
- 2014-04-30 CN CN201480030003.8A patent/CN105247793B/zh active Active
- 2014-05-16 TW TW103117384A patent/TWI516914B/zh active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI777519B (zh) * | 2021-04-26 | 2022-09-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI808483B (zh) * | 2021-09-08 | 2023-07-11 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
CN113724774A (zh) * | 2021-09-14 | 2021-11-30 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN113724774B (zh) * | 2021-09-14 | 2023-08-29 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
Also Published As
Publication number | Publication date |
---|---|
TW201510717A (zh) | 2015-03-16 |
WO2014197140A1 (en) | 2014-12-11 |
CN105247793A (zh) | 2016-01-13 |
US9337873B2 (en) | 2016-05-10 |
CN105247793B (zh) | 2019-05-28 |
US20140351672A1 (en) | 2014-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI516914B (zh) | 用於使用位元可靠度之錯誤校正碼的錯誤校正偵測之系統及方法 | |
US10135465B2 (en) | Error correction methods and apparatuses using first and second decoders | |
US8621318B1 (en) | Nonvolatile memory controller with error detection for concatenated error correction codes | |
US8954822B2 (en) | Data encoder and decoder using memory-specific parity-check matrix | |
US8924815B2 (en) | Systems, methods and devices for decoding codewords having multiple parity segments | |
US9048876B2 (en) | Systems, methods and devices for multi-tiered error correction | |
US9397698B1 (en) | Methods and apparatus for error recovery in memory systems employing iterative codes | |
TWI594583B (zh) | 硬決定輸入之一般化低密度同位檢查軟解碼 | |
US9417956B2 (en) | Error detection and correction unit, error detection and correction method, information processor, and program | |
US9170876B1 (en) | Method and system for decoding encoded data stored in a non-volatile memory | |
US20100253555A1 (en) | Encoding method and system, decoding method and system | |
US8127216B2 (en) | Reduced state soft output processing | |
CN103514061B (zh) | 用于错误校正的装置和方法 | |
US8671335B2 (en) | Soft output Viterbi detector with error event output | |
US7793201B1 (en) | Bit error detector for iterative ECC decoder | |
US9053047B2 (en) | Parameter estimation using partial ECC decoding | |
KR20090099756A (ko) | 메모리 장치 및 인코딩/디코딩 방법 | |
US9363036B1 (en) | Methods and apparatus for defect detection and correction via nonbinary iterative decoding | |
US8347191B1 (en) | Method and system for soft decision decoding of information blocks | |
US10303364B2 (en) | Techniques for low-latency chase decoding of turbo product codes with soft information | |
US20150200686A1 (en) | Encoding device, decoding device, and operating method thereof | |
US10326477B2 (en) | Techniques for miscorrection detection for constituent codewords in product codes | |
TWI551060B (zh) | Bch解碼方法及其解碼器 | |
US8181098B2 (en) | Error correcting Viterbi decoder | |
Li et al. | Improved soft-assisted iterative bounded distance decoding for product codes |