TW201319800A - 使用置換子矩陣之總和的總和檢查碼 - Google Patents
使用置換子矩陣之總和的總和檢查碼 Download PDFInfo
- Publication number
- TW201319800A TW201319800A TW101127332A TW101127332A TW201319800A TW 201319800 A TW201319800 A TW 201319800A TW 101127332 A TW101127332 A TW 101127332A TW 101127332 A TW101127332 A TW 101127332A TW 201319800 A TW201319800 A TW 201319800A
- Authority
- TW
- Taiwan
- Prior art keywords
- matrix
- code
- bit
- bits
- parity
- 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/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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- 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/2906—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 using 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/2906—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 using block codes
- H03M13/2927—Decoding strategies
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一種用於編碼資料位元之方法包含基於該等資料位元來計算總和檢查碼同位位元。該等資料位元及該等總和檢查碼同位位元所滿足之一組方程式對應於一密集同位核對矩陣。該密集同位核對矩陣包括置換子矩陣之總和。
Description
本發明大體而言係關於編碼資料及解碼資料。
本申請案主張對2011年7月29日提出申請之美國臨時申請案第61/513,186號之優先權,該申請案以全文引用之方式併入本文中。
近年來,快閃記憶體已變得越來越受歡迎。快閃記憶體用於大量應用中,包含行動電話、數位相機、音樂播放器及諸多其他應用。一主要新興應用係將快閃記憶體用作固態磁碟(SSD)。此等記憶體可使用具有冗餘之高密度多位階記憶體胞(MLC)記憶體來實施,諸如進階錯誤校正編碼(ECC)方案。舉例而言,進階ECC方案包含基於低密度同位核對(LDPC)或渦輪碼(Turbo code)之反覆編碼方案。
錯誤校正碼在記憶體中係常用的,以便藉由處置在實體媒體之程式化或讀取期間或在儲存期間其引入之錯誤來提供資料可靠性及完整性。一錯誤校正碼係滿足一組既定約束條件之一組碼字。一種常用類別之錯誤校正碼係二進制線性區塊碼之類別,其中透過對碼字位元之一組同位核對約束條件來定義該碼。換言之,藉由一有效碼字應滿足之關於二元伽羅瓦場(Galois field)GF(2)之一組線性方程式來定義一個二進制線性區塊碼。該組線性方程式可藉助於M列之一同位核對矩陣H而方便地闡述,以使得該矩陣之每一列定義一個同位核對約束條件,且當且僅當H.C=0時
一字C構成一有效碼字(對於GF(2)而言)。向量S=H.C通常視為與字C相關聯之症狀碼向量。此症狀碼可稱為「錯誤校正」症狀碼,以區分其與一不同症狀碼,如「循環冗餘核對(CRC)」症狀碼或「總和檢查碼」症狀碼。該症狀碼向量之每一元素與同位核對方程式中之一者相關聯,且對於C所滿足之一方程式而言該元素之值為0,而對於C不滿足之一方程式而言該元素之值為1。該等症狀碼向量之元素在本文中亦稱為症狀碼向量之「位元」。症狀碼權數(W s )係由症狀碼向量S表示之不可滿足方程式之數目。因此,對於將係一有效碼字之一字而言,與該字相關聯之症狀碼向量必須皆為零且其症狀碼權數必須為0。
錯誤校正碼可基於反覆編碼方案,諸如LDPC及渦輪碼。在反覆編碼方案中,使用以反覆方式更新碼字位元之其估計值之一反覆演算法來執行解碼,直至該演算法收斂至一有效碼字為止。該以反覆方式更新之估計值可係「硬」估計值(1對0),或由位元值(1或0)之一估計值與指示所估計值正確之概率之估計值之某種可靠性度量一起構成的「軟」估計值。一常用軟估計值係對數似然比(LLR),即位元為0之概率對位元為1之概率之比率。一正LLR意指更可能將該位元估計為0而非1。一負LLR意指更可能將該位元估計為1而非0。LLR之絕對值係估計值之確定性之一指示。一位元之一估計值可「翻轉」,意指該位元估計值之值改變:舉例而言,一硬估計值自0改變至1或自1改變至0,或一LLR之正負號自正改變至負或自負改變
至正。(類似地,「翻轉」一症狀碼向量之一位元指示將該位元自1改變至0或自0改變至1。)藉助該等位元之初始先驗(可能地,「軟」)估計值來初始化解碼器。然後以反覆方式處理及更新此等估計值。解碼可在固定數目次反覆之後終止。另一選擇係,一旦當前位元估計值已滿足所有同位核對約束條件,一收斂偵測機制即可終止該解碼。
用於提早解碼終止之另一選項係藉由一「收斂」偵測機制,其偵測到解碼器收斂之概率為低且因此終止當前解碼嘗試並在更新解碼器初始化值之後重試解碼係更有效的。用於執行此收斂偵測之一項選項係基於不可滿足之同位核對約束條件之當前數目過高。用於收斂偵測之另一選項係基於在解碼期間未滿足之同位核對之數目之演變。在此提早終止之情形中,在改變某些參數(諸如記憶體讀取臨限值或讀取解析度)之後,可藉助更新之初始化值來重複解碼,以使得增加該重複嘗試中成功的解碼收斂之概率。
在一反覆解碼過程收斂至一有效碼字之後,可對所得碼字執行一總和檢查碼以判定該解碼過程是否已收斂在一不正確的碼字上。舉例而言,一碼字可編碼資料位元連同對應於該等資料位元之CRC同位位元。然而,對自一反覆解碼過程產生之一碼字執行CRC處理可引入額外解碼延遲。
本發明揭示一種總和檢查碼結構,其允許在不引入反覆後解碼延遲之情況下的「運行中(on-the-fly)」總和檢查碼計算。該總和檢查碼可經有效地產生且與用於類循環
LDPC(QC-LDPC)碼之一LDPC解碼器之資料路徑相容。此外,在偵測未被LDPC解碼器偵測到的錯誤方面,該總和檢查碼可與習用CRC同樣有效。
本文僅以實例方式參照附圖來闡述各種實施例。
參照圖式,圖1展示一反覆解碼器10之一方塊圖。初始位元估計值儲存於一位元估計值隨機存取記憶體(RAM)12中。一唯讀記憶體(ROM)14用於儲存一碼描述。舉例而言,ROM 14可儲存哪些位元參與到每一同位核對約束條件中之一指示(亦即,ROM 14儲存定義該碼之同位核對矩陣H)。位元估計值係透過一路由層16自位元估計值RAM 12讀取至數個處理單元18中。碼描述ROM 14控制位元估計值至處理單元18中之路由。處理單元18基於位元應滿足之同位核對約束條件來更新位元估計值。處理單元18可使用一高速暫存RAM(scratchpad RAM)20來儲存更新該等位元估計值所要求之暫時資料。位元估計值之更新係以反覆方式、一次一或多個位元估計值地完成,其中一反覆可涉及基於該等位元估計值應滿足之所有同位核對約束條件來更新位元估計值(亦即,「遍歷」碼描述ROM 14一次)。一旦收斂偵測區塊22偵測到當前位元估計值已滿足所有同位核對約束條件(舉例而言,藉由測試症狀碼權數是否為零),即可在預定數目次反覆之後終止解碼,或根據一收斂偵測區塊22產生之一收斂信號而終止解碼。
一解碼「反覆」可定義為:考量定義該碼之同位核對方
程式中之每一者,及根據某一排程來更新與每一同位核對方程式相關聯之碼字位元之估計值,直至已考量所有同位核對方程式為止。舉例而言,通常將LDPC解碼公式化為在一「Tanner圖」之節點當中傳送之訊息,該Tanner圖之邊緣連接表示碼字位元之節點與表示該等碼字位元應滿足之同位核對之節點。用於一Tanner圖上之LDPC解碼之訊息傳送排程之實例包含下列各項:
1.遍歷所有同位核對節點,將訊息自每一同位核對節點傳送至彼同位核對節點藉由該圖之邊緣連接至之碼字位元節點。根據在碼字位元節點處接收之訊息來更新碼字位元估計值。然後遍歷所有碼字位元節點,將訊息自每一碼字位元節點傳送至彼碼字位元節點藉由該圖之邊緣連接至之同位核對節點。根據在同位核對節點處接收之訊息來更新同位核對位元估計值。
2.遍歷所有碼字位元節點,將訊息自每一碼字位元節點傳送至彼碼字位元節點藉由該圖之邊緣連接至之同位核對節點。根據在同位核對節點處接收之訊息來更新同位核對位元估計值。然後遍歷所有同位核對節點,將訊息自每一同位核對節點傳送至彼同位核對節點藉由該圖之邊緣連接至之碼字位元節點。根據在碼字位元節點處接收之訊息來更新碼字位元估計值。
3.遍歷所有同位核對節點。在每一同位核對節點處,將訊息自藉由該圖之邊緣連接至彼同位核對節點之碼字位元節點傳送至同位核對節點,根據在同位核對節點處接收之
訊息來更新同位核對位元估計值,將訊息自同位核對節點發送回至彼等碼字位元節點,及根據自同位核對節點接收之訊息來更新彼等碼字位元節點處之碼字位元估計值。
4.遍歷所有碼字位元節點。在每一碼字位元節點處,將訊息自藉由該圖之邊緣連接至彼碼字位元節點之同位核對節點傳送至碼字位元節點,根據在碼字位元節點處接收之訊息來更新碼字位元估計值,將訊息自碼字位元節點發送回至彼等同位核對節點,及根據自碼字位元節點接收之訊息來更新彼等同位核對節點處之同位核對位元估計值。
一「反覆」繼續直至已完成其相關聯排程為止。
意欲用於諸如SSD及行動應用之應用的快閃記憶體可要求極高的隨機輸入/輸出(I/O)效能。在讀取期間,此暗示使用極快速ECC解碼器。為達成反覆編碼方案之快速解碼,可提供一種快速收斂偵測設備。收斂偵測區塊22達成解碼器10之較快速解碼時間(由於提早終止)及較低能量消耗。
反覆解碼器之收斂偵測可包含在每一解碼反覆結束時計算症狀碼向量S=H.(其中係在反覆結束時的位元估計值之向量)並核對是否滿足所有同位核對(亦即,症狀碼權數是否為零)。在每一反覆結束時可執行專用處理以便計算症狀碼向量,此可延長解碼反覆之解碼時間花費。
基於序列排程(其中一個接一個地處理碼之同位核對方程式)之反覆解碼器可執行半運行中(semi-on-the-fly)收斂偵測。根據此方法,保持所滿足同位核對之數目之一計數
得以維持。在解碼開始時,將此計數設定為零。在解碼期間,以序列方式及反覆方式遍歷該碼之同位核對,且基於該等同位核對中之每一者來更新位元估計值。作為此解碼過程之部分,在遍歷該同位核對時計算每一同位核對之症狀碼位元。若症狀碼位元為零(亦即,滿足該同位核對),則該計數遞增,否則將該計數重設至零。每次該等碼字位元中之一者改變值時亦將該計數重設至零,此乃因先前計算之症狀碼位元不再有效。一旦該計數到達M(回想M為碼字應滿足之同位核對方程式之數目,其係H之尺寸),即偵測到收斂且終止解碼。
此半運行中收斂偵測機制幾乎不引入額外複雜度。然而,其提供延遲的收斂偵測,此乃因其在解碼器已收斂至一有效碼字之後的一完全反覆後才偵測到收斂。原因在於:在待翻轉之最後一位元翻轉其值之後才計數完全數目個已滿足同位核對(此乃因值翻轉會重設計數器)。在一高錯誤情境中,諸如在已儲存自一快閃記憶體讀取之資料之後及/或在該快閃記憶體已經受多次寫入/抹除循環之後很久才解碼該資料,可要求數次反覆(例如,十次或更多次反覆)進行收斂,因此在最後一位元翻轉之後再添加一次反覆可添加10%或更少的收斂時間。然而,在低錯誤環境中,諸如一新的快閃記憶體,一次或兩次反覆即足以用於解碼一碼字,因此在最後一位元翻轉之後添加一完全反覆可添加50%或100%的解碼時間。
可提供即時「運行中」收斂測試。此即時收斂測試可用
於諸如SSD及i-NAND之應用以改良讀取通量。在可受益於極快速解碼器之隨機I/O效能中可使用即時收斂測試。此外,在快閃記憶體係新的(低循環)且其錯誤率低時可量測隨機I/O效能。於此情形中,一解碼器可在僅一次或兩次反覆之後收斂至一有效碼字。於此情形中,使用收斂偵測方法(諸如半運行中收斂偵測方法)將引入約一次反覆之一延遲,此將增加解碼時間約50%至100%,此可使隨機I/O效能降級。
一種解碼包含複數個碼字位元之一碼字之一表示之方法可包含:(a)在其中根據一排程來更新碼字位元之各別估計值之一反覆解碼演算法之至少一個反覆期間,計算該演算法之一終止指示;及(b)測試該終止指示以判定是否終止該解碼;其中盡管在該排程之緊鄰前一遍歷期間該等碼字位元之各別估計值中之至少一者已翻轉,但該終止指示之測試仍展示是否終止該解碼。
一種用於解碼包含複數個碼字位元之一碼字之一表示之解碼器可包括用於下列操作之電路:(a)在其中根據一排程來更新碼字位元之各別估計值之一反覆解碼演算法之至少一個反覆期間,計算該演算法之一終止指示;及(b)測試該終止指示以判定是否終止該解碼;其中盡管在該排程之緊鄰前一遍歷期間該等碼字位元之各別估計值中之至少一者已翻轉,但該終止指示之測試仍展示是否終止該解碼。
一種解碼包含複數個碼字位元之一碼字之一表示之方法可包含:在一反覆解碼演算法之至少一次反覆中之每一者
期間:回應於該等碼字位元中之一者之一各別估計值之一翻轉:(a)更新隨碼字位元之估計值之一症狀碼而變之一終止指示,該症狀碼包含複數個症狀碼位元;及(b)測試該終止指示。
一種用於解碼包含複數個碼字位元之一碼字之一表示之解碼器可包含用於以下操作之電路:在一反覆解碼演算法之至少一次反覆中之每一者期間:回應於該等碼字位元中之一者之一各別估計值之一翻轉:(a)更新隨該等碼字位元之估計值之一症狀碼而變之一終止指示,該症狀碼包含複數個症狀碼位元;及(b)測試該終止指示。
可解碼包含複數個碼字位元之一碼字之一表示。所解碼的係一碼字之一「表示」而非一實際碼字,此乃因所解碼的係可能已被雜訊污染且因此不再為一有效碼字之一碼字。舉例而言,一應用可係恢復已儲存於一非揮發性記憶體(諸如一快閃記憶體)中作為一或多個碼字但已由於快閃記憶體隨時間降級而改變或已隨著自記憶體讀取該資料之過程而改變之資料。另一應用可係校正在經由一雜訊傳輸通道傳輸之碼字中累積之錯誤。若對該等方法之輸入係一有效碼字,則可無需解碼。
在遵循如上文所述用於更新碼字位元之估計值之一排程之一反覆解碼演算法之一或多次反覆期間,可計算該演算法之一終止指示。該終止指示係在該反覆「期間」計算意指產生該終止指示之該等計算中之至少某些計算係在已完成該反覆之所有經排程碼字位元估計值更新之前執行。
「更新」一碼字位元估計值意指對估計值執行意欲改良該估計值之操作。此等操作可翻轉或並不翻轉該估計值。舉例而言,更新一LLR估計值可僅改變估計值之量值而不改變估計值之正負號。
該終止指示可係經測試以藉由產生一有效碼字來判定該演算法是否已收斂之一收斂指示,或經測試以判定是否該演算法可能不收斂之一收斂指示。該終止指示之計算使得:盡管在緊鄰該測試之前的該排程之一遍歷期間該等碼字位元估計值中之一或多者已翻轉,但該測試仍展示是否終止該解碼。一排程之一「遍歷」意指在該排程中之一點處開始且返回至該排程中之彼點。若該點係在該排程之開始處或結束處,則該遍歷等效於一反覆;否則,該遍歷越過兩次反覆之間的一邊界。
在該終止指示係一收斂指示之情形中,可在該反覆期間而非在該反覆之後計算該終止指示。盡管有該等碼字位元估計值中之一或多者之當前翻轉,但仍可指示收斂。
若該終止指示之測試指示該演算法已收斂,則可終止該解碼。另外或另一選擇係,若該終止指示之測試指示該演算法可能不收斂,則可終止該解碼。
在該反覆期間的終止指示之測試可至少在翻轉一碼字位元估計值時實現。
該終止指示之計算可包含一錯誤校正症狀碼之所有複數個位元之「或」運算。
若該碼字係一碼(諸如一個二進制線性區塊碼)之一碼
字,其中已針對其定義碼字位元估計值之一錯誤校正症狀碼,則該終止指示可包含該錯誤校正症狀碼之權數。該終止指示之測試包含比較該錯誤校正症狀碼之權數與一臨限值。對於收斂偵測而言,臨限值為零。
終止指示之計算可包含:回應於翻轉該等碼字位元估計值中之一者,翻轉受彼碼字位元估計值影響之錯誤校正症狀碼之每一位元。若一碼字位元參與到一錯誤校正症狀碼位元之同位核對方程式中,則該錯誤校正症狀碼位元受彼碼字位元估計值影響。終止指示之計算可包含:回應於翻轉該等碼字位元估計值中之一者,根據受被翻轉之碼字位元估計值影響之錯誤校正症狀碼位元之翻轉來更新錯誤校正症狀碼權數。受碼字位元翻轉及/或錯誤校正症狀碼權數之更新影響之錯誤校正症狀碼之(一或多個)位元之翻轉可與觸發錯誤校正症狀碼權數之更新之碼字位元翻轉實質上同步。另一選擇係,受碼字位元翻轉及/或錯誤校正症狀碼權數之更新影響之錯誤校正症狀碼之(一或多個)位元之翻轉可經排程以在觸發錯誤校正症狀碼之更新之碼字位元翻轉之後實現。此排程可包含將翻轉受碼字位元翻轉影響之每一錯誤校正症狀碼位元之請求儲存於一佇列緩衝器中,諸如一FIFO緩衝器。若該佇列緩衝器溢位,則該解碼方法可回復到如上文所論述之終止解碼之方法中之另一者。可在演算法之該等反覆中之任一者之前初始化該錯誤校正症狀碼。另一選擇係,其間計算該終止指示之反覆可皆在該演算法之第一反覆之後,且可在該演算法之第一反
覆期間初始化該錯誤校正症狀碼。此初始化可與錯誤校正症狀碼位元之預排程翻轉結合且回應於在該第一反覆中碼字位元估計值之翻轉而與該預排程翻轉實質上同時執行。
在其間計算終止指示之每一反覆期間,可計算該等碼字位元估計值之一總和檢查碼症狀碼之至少一部分更新。
一種用於實施用於解碼包含複數個碼字位元之一碼字之一表示的一方法之解碼器可包含用於實施該方法之電路。
該電路可包含用於計算一錯誤校正症狀碼之所有複數個位元之複數個「互斥或」閘極及用於組合該等「互斥或」閘極之輸出之一「或」閘極。
針對一碼(諸如一個二進制線性區塊碼),其中針對其定義碼字位元估計值之一錯誤校正症狀碼,終止指示可包含錯誤校正症狀碼之權數。終止指示之測試可包含:比較該錯誤校正症狀碼之權數與一臨限值,且終止指示之計算可包含:回應於翻轉該等碼字位元估計值中之一者,改變受彼碼字位元估計值影響之錯誤校正症狀碼之每一位元之正負號。對於收斂偵測而言,臨限值為零。該電路可包含用於回應於碼字位元估計值之翻轉來更新錯誤校正症狀碼之位元及錯誤校正症狀碼之權數兩者之一錯誤校正症狀碼更新區塊。該電路可包含用於儲存錯誤校正症狀碼之位元之複數個暫存器,以使得錯誤校正症狀碼位元及錯誤校正症狀碼權數之更新可與碼字位元之更新同步。另一選擇係,替代此等暫存器,該電路可包含用於儲存錯誤校正症狀碼之位元之一隨機存取記憶體及用於排程該等錯誤校正位元
及該錯誤校正症狀碼權數之更新之一佇列緩衝器(諸如一FIFO緩衝器),此乃因若在更新時僅預期翻轉該等碼字位元估計值之一小部分,則可相對於碼字位元之更新而延遲錯誤校正症狀碼位元及錯誤校正症狀碼權數之更新。
該解碼器可包含用於在其中計算終止指示之解碼演算法之每一反覆期間實現該等碼字位元估計值之一總和檢查碼症狀碼之至少一部分更新之電路。
可藉由更新隨碼字位元估計值之一症狀碼而變之一終止指示並測試經更新之終止指示來回應在一反覆解碼演算法之一反覆期間字位元之估計值之翻轉。該終止指示可係經測試以藉由產生一有效碼字來判定該演算法是否已收斂之一收斂指示,或經測試以判定是否該演算法可能不收斂之一收斂指示。在該終止指示係一收斂指示之情形中,可回應於一碼字位元翻轉而非回應於完成一反覆來更新收斂指示,且可回應於碼字位元翻轉來更新而非重設該收斂指示。
若測試展示該演算法已收斂,則可終止解碼。另外或另一選擇係,若該測試指示該演算法可能不收斂,則可終止該解碼。
終止指示可隨碼字位元估計值之翻轉之前的症狀碼之一權數及受彼碼字位元估計值影響之每一症狀碼位元而變。
該更新及該測試可在繼續該反覆之前實現。舉例而言,若反覆解碼演算法係在每一反覆中遍歷所有同位核對節點之一LDPC訊息傳送演算法,且可由於與同位核對節點中
之一者相關聯之訊息傳送之結果而翻轉一碼字位元估計值,則在自任何後續同位核對節點傳送任何訊息之前更新及測試終止指示。
即時收斂偵測可在反覆解碼器中實施。可藉由翻轉對應於該經翻轉位元參與到其中之同位核對之所有症狀碼位元來即時地(或幾乎即時地)計算在症狀碼向量及症狀碼權數之解碼期間翻轉之每一碼字位元之影響。
在圖2中展示即時收斂偵測之一實施方案。每一同位核對方程式由一「互斥或」閘極30表示,該「互斥或」閘極之輸入係參與到該同位核對方程式中之位元之當前位元估計值(在圖2中表示為圓)。每一核對方程式「互斥或」閘極30輸出症狀碼位元中之一者。對症狀碼位元執行一「或」操作以產生一收斂偵測信號。只要收斂偵測信號等於零,位元估計值即構成一有效碼字且可終止解碼。
圖2中繪示之實施方案可包含計算症狀碼位元之一複雜互連層,其可難以針對長碼實施。應注意,在反覆編碼方案中使用之碼通常基於稀疏同位核對矩陣(因此名為「低密度」同位核對碼)。此意指每一位元參與到少量同位核對方程式中(通常平均在三個與六個同位核對之間)。此又簡化用於計算症狀碼位元之互連層。另一方面,反覆編碼方案通常基於極長的碼。因此,總體而言,對於圖2中圖解說明之實施方案而言互連層可過於複雜。
在圖3中展示用於實施即時收斂偵測區塊之電路,其不要求圖2之複雜互連層。圖3之解碼器40可與圖1之解碼器
10一致,但用收斂偵測區塊42替換圖2之收斂偵測區塊22。使得I=[i 1 i 2…i z ]標識由解碼器之Z個處理單元18當前更新其「軟」位元估計值之一組位元之索引。使得Q=[q 1 q 2…q z ]及分別標識在此等位元由處理單元更新之前及之後其「軟」位元估計值。使得C=[c 1 c 2…c z ]及分別標識Q及之對應「硬」決策(亦即,0/1位元值)。使得F=[f 1=c 1 ♁…f z =c z ♁] T 標識位元翻轉指示符之一行向量(亦即,若對應位元翻轉其值則f=1且否則=0)。使得S=[s 0 s 1 ,...,s M-1 ] T 標識症狀碼向量(作為一行向量)且W s 標識症狀碼權數計數。收斂偵測區塊42操作如下:在解碼之前將症狀碼向量S及症狀碼權數計數W s 重設至零。
2)基於初始先驗位元估計值在解碼器初始化期間計算初始症狀碼向量及初始症狀碼權數。
每次由處理單元18計算一新組位元估計值時(例如,每一時脈),相應地更新症狀碼向量S及症狀碼權數計數W s 。
此係由症狀碼向量更新區塊44完成,其更新對應於當前組位元(具有索引I)參與到其中之同位核對約束條件之相關組症狀碼位元。
症狀碼向量儲存於暫存器46之一陣列中(以便允許任一數目個症狀碼位元之同時存取及更新)。一S-ROM 48儲存碼之同位核對矩陣H之行。於此情形中,症狀碼向量更新區塊44更新症狀碼向量如下:S=S ♁(H(I).F),其中H(I)係
碼之同位核對矩陣H之一M×Z子矩陣,其僅包含具有索引為I之行。另一選擇係,S=S ♁ H(I f=1),其中I f=1係索引組I之一子組,其包含僅翻轉正負號之位元之索引(亦即,對其而言f=1之位元)。
應注意,在反覆編碼方案中,如基於LDPC碼之方案,同位核對矩陣H係稀疏的且在H之一行中之1的平均數目係小的(通常在三與六之間),而H之尺寸M可係數百或數千或更多(亦即,一位元平均而言僅參與到自該碼之M個同位核對中選出之三與六個同位核對之間中)。因此,就S-ROM大小及症狀碼向量更新複雜度兩者而言,替代將H之行儲存於S-ROM 48中,僅儲存每一碼字位元參與到其中之症狀碼位元之索引可更有效。這樣,在給出一組碼字位元索引I之情形中,S-ROM 48輸出對應於該等碼字位元參與到其中之同位核對之一組症狀碼位元索引J(I)。此外,使用其同位核對矩陣H經配置以使得同時處理之每一組位元不參與到共同同位核對中的LDPC碼(例如,類循環LDPC碼)係常見的。換言之,若i 1,i 2 I,則J(i 1)∩J(i 2)=Ø。於此情形中,可藉由僅如下翻轉相關症狀碼位元來完成症狀碼向量更新:S(J(I f=1))=NOT(S(J(I f=1))),其中S(J)標識具有索引J之S中之症狀碼位元之一子組。
協同症狀碼向量之更新一起來更新症狀碼權數。症狀碼權數係症狀碼向量之元素之總和。症狀碼權數可以一遞增方式更新:W s =W s +N 0→1-N 1→0,其中N 0→1係在當前症狀碼向量更新步驟中自0翻轉至1之症狀碼位元之數目,且N 1→0
係在當前症狀碼向量更新步驟中自1翻轉至0之症狀碼位元之數目。只要W s =0即終止解碼,此乃因此指示症狀碼向量被調到零處且解碼器已收斂至一有效碼字。
症狀碼向量之初始化可執行如下:在解碼之前,重設症狀碼向量且用0初始化。然後,可在解碼器初始化期間計算初始症狀碼向量,同時用初始先驗「軟」位元估計值填充位元估計值RAM 12。此可使用圖3之症狀碼向量更新區塊44完成,如圖4中所展示。在初始化期間,症狀碼向量更新區塊44可由先驗位元估計值之向量驅動,而在解碼期間,症狀碼向量更新區塊44由位元翻轉之向量驅動。應注意,在圖4之上下文中,所有位元索引I皆為「當前」。亦應注意,在圖4之上下文中,參數「Z」標識同時載入至位元估計值RAM 12中之先驗「軟」位元估計值之數目。
與圖2之即時收斂偵測電路相比,圖3之即時收斂偵測區塊42較少複雜且較少消耗電力。然而,收斂偵測區塊42仍可導致相對高的實施方案複雜度。主要原因在於:可能需要同時更新諸多症狀碼位元。結果,症狀碼向量不應儲存於一低成本RAM(其將允許對一個或至多兩個位址同時存取)中,而替代地應儲存於M個暫存器46之陣列中(其中M可約為數百或數千或更多)。此外,需要大量同時「互斥或」操作(S=S ♁ H(I f=1),要求多達Z×M個「互斥或」操作)。另一選擇係,可執行少量同時「非」操作(S(J(I f=1))=NOT(S(J(I f=1)))),但然後應實施用於自總計M個症狀碼位元中挑選少量症狀碼位元(其索引為J(I f=1)之一大
的多工層。
為降低圖3之即時收斂偵測區塊42之複雜度及電力消耗,可使用圖5中展示之一不同系統。圖5之解碼器可與圖3之解碼器40一致,但用收斂偵測區塊52替換收斂偵測區塊42。在一稀疏同位核對矩陣之解碼期間,位元翻轉之平均頻率極低。平均而言,以快閃記憶體中常見的位元錯誤率,一位元可每10至20個解碼時脈翻轉一次。仍可存在其中數個位元同時翻轉(亦即,在一單個時脈中,或在連續時脈中)之一叢發,然而此係一低概率事件。現在,每一位元翻轉要求更新僅數個症狀碼位元(由於同位核對矩陣之稀疏性),以便保持症狀碼向量更新。因此,由於位元翻轉以低頻率發生,因此可使用一FIFO緩衝器54來儲存及管理位元翻轉「請求」,以使得症狀碼向量更新將以一次一個或數個(例如,Z個)症狀碼位元之低頻率完成。此方法之一優勢係即時收斂偵測,同時具有極低複雜度及低電力消耗。更具體而言,圖5中繪示之解決方案並不將症狀碼向量儲存於一暫存器陣列中-症狀碼向量可儲存於一低成本RAM(在圖5中繪示為S-RAM 56)中,此乃因症狀碼向量一次更新一個或數個(Z個)位元。此外,無需一大的多工層,且邏輯量極低,此乃因一次將翻轉僅一個或數個(例如,Z個)症狀碼位元。收斂偵測區塊52之症狀碼向量更新區塊45係收斂偵測區塊42之症狀碼向量更新區塊44,但經修改以回應於來自FIFO緩衝器54而非暫存器46中之請求來操縱SRAM 56中之症狀碼位元。
根據圖5之收斂偵測區塊52,每次當在由處理單元18更新之一組Z個軟位元估計值內識別出位元翻轉時,即將一請求插入FIFO緩衝器54中用於翻轉適當症狀碼位元。此請求包含翻轉該Z個位元(例如,Z個指示符位元)中之哪些位元之一規範及藉由該請求產生之當前位元群組之(一或多個)索引。只要FIFO緩衝器54不為空,症狀碼向量更新區塊45即一個接一個地處置FIFO緩衝器54中之請求。每一請求可在數個處理時脈中處置。舉例而言,若藉由該請求產生之經翻轉位元(或該組Z個經同時處理位元內之經翻轉位元)參與到d個同位核對中,則可在d個時脈中處置該請求,以使得在每一時脈中,S-ROM 48輸出S-RAM 56內之對應於該(等)位元參與到其中之d個同位核對中之一者之一個症狀碼位元(或一組Z個症狀碼位元)的位址A。根據儲存於FIFO緩衝器54中之指示符向量來更新在該(等)位址處之症狀碼位元(例如,S-RAM(A)=S-RAM(A)♁ F)。另外,症狀碼權數遞增地更新:W s =W s +N 0→1-N 1→0,其中N 0→1係在經更新S-RAM位址A處自0翻轉至1之症狀碼位元之數目,且N 1→0係在經更新S-RAM位址A處自1翻轉至0之症狀碼位元之數目。
為在一位元翻轉請求「叢發」之情形中(其中每一請求可要求數個時脈來進行處理)避免FIFO緩衝器54之溢位,應分配一充分大的FIFO緩衝器54。另一選擇係,可使用一較小FIFO緩衝器54,且然後在FIFO緩衝器54溢位之(低概率)事件中,可停用即時收斂偵測區塊52。於此情形中,
解碼器50可運行直至最大數目次反覆為止,或回復至另一習用收斂偵測方法。
S-RAM 56中之症狀碼向量之初始化可在解碼器50之初始化期間如圖4中所展示完成,同時用初始先驗「軟」位元估計值來填充位元估計值RAM 12。在第一解碼反覆期間可一次一個或數個(例如,Z個)症狀碼位元地計算初始症狀碼向量,此乃因在第一解碼反覆期間無論如何皆處理所有同位核對。舉例而言,考量根據一序列更新排程之一解碼器操作,其中一組(Z個同位核對)接一組地處理碼之同位核對,以使得在r個時脈中處理涉及r個位元之一同位核對。於此情形中,症狀碼向量初始化完成如下:在解碼之前,用0初始化症狀碼向量儲存器(亦即,S-RAM 56)。然後在第一解碼反覆期間,在每r個時脈之後,計算一額外組Z個症狀碼位元(在圖5中P=[p 1…p z ]),且相應地更新症狀碼向量及症狀碼權數計數。亦即S-RAM(n)=S-RAM(n)♁ p,其中n係每r個時脈遞增一之一序列位址計數。應注意,在第一反覆期間,藉由下列兩個源更新S-RAM 56:1)產生症狀碼位元源(S-RAM(n)=S-RAM(n)♁ p)及2)追蹤翻轉位元源(S-RAM(A)=S-RAM(A)♁ F)。一旦第一反覆完成,症狀碼向量及症狀碼權數計數即為有效的。自彼點起,僅追蹤翻轉位元源更新症狀碼向量及症狀碼權數計數,且一旦症狀碼權數計數達到零,即偵測到收斂且終止解碼。
注意,由於在第一解碼反覆期間存在兩個源來更新症狀碼向量,因此追蹤翻轉位元源應僅更新經先前處理之同位
核對之症狀碼位元。自第二反覆起直至解碼終止為止,追蹤翻轉位元源更新所有症狀碼位元。
根據此低複雜度症狀碼向量初始化方法,收斂偵測區塊52僅在第一解碼反覆完成之後作為一快速收斂偵測器變得有效。然而,無論如何不預期解碼器50在不足一次反覆中收斂(除非錯誤數目為零或幾乎為零)。
到此處為止,已針對收斂之提早偵測闡述收斂偵測區塊42及52之使用(如其名稱所暗示)。收斂偵測區塊42及52之一修改將其變成發散偵測區塊。替代比較W s 與零,比較W s 與一非零臨限值。通常,此臨限值係在緊鄰前一反覆中之一對應點處之W s 之值。另一選擇係,此臨限值可係若預期該反覆解碼將收斂則預期在該反覆解碼中W s 不超過一既定點之一值。
圖1至圖5之系統亦可用於一總和檢查碼之快速測試。一總和檢查碼係用於錯誤偵測之一碼。當與錯誤校正碼一起實施時,一系統可針對所偵測錯誤達成小於10-14之錯誤率且針對未被偵測之錯誤達成小於10-20之錯誤率。在圖6中圖解說明採用一總和檢查碼及一ECC之一編碼器。在圖6中,總和檢查碼編碼器之輸出係由與一總和檢查碼串連之資訊位元組成之一部分碼字,且ECC編碼器之輸出係由與ECC同位位元串連之部分碼字組成之一全碼字。
一總和檢查碼可使用一循環冗餘碼(CRC)實施。一CRC係確保將偵測到某些型樣之錯誤之一循環碼。藉由一CRC偵測到之型樣可包含所有奇數編號之錯誤、多達一既定叢
發長度之叢發錯誤、一或多個其他類型之錯誤或其任一組合。
可藉由將資訊位元嵌入一多項式p(x)中並乘以某一多項式環中之一產生多項式g(x)以產生一碼多項式c(x)來編碼一CRC。
可藉由計算一CRC之症狀碼而將該CRC用於錯誤偵測,其簡化為將碼多項式c(x)之表示乘以一核對多項式h(x),且若c(x).h(x)=0(在該多項式環中)則宣告成功。藉助於多項式乘法來計算CRC之症狀碼之過程不能在習用ECC解碼期間在運行中完成。替代地,其可在ECC解碼器完成之後完成;因此其引致額外解碼延遲。為避免此額外延遲,可將本文所述之即時症狀碼計算之方法應用於即時、運行中總和檢查碼計算。
正如針對一碼字(圖6之ECC編碼器之輸出)來定義一ECC同位核對矩陣H,因此可針對自圖6之總和檢查碼編碼器輸出之部分碼字來定義一總和檢查碼同位核對矩陣。為進行即時錯誤偵測,將總和檢查碼同位核對矩陣附加至ECC之同位核對矩陣。換言之,藉由添加與總和檢查碼之同位核對矩陣相關之列來擴展ECC之同位核對矩陣。由於該等ECC同位位元不參與到總和檢查碼碼中,因此與ECC同位位元相關之所有值在與總和檢查碼相關之額外列中皆為0。該經擴展矩陣具有圖7中所展示之形式。
可針對總和檢查碼及ECC定義一單個統一同位核對矩陣,且可使用上文闡述之方法來計算總和檢查碼與ECC兩
者之一聯合症狀碼向量。聯合症狀碼向量之前M個元素構成ECC症狀碼向量S。聯合症狀碼向量之其餘元素構成CRC症狀碼向量。ECC症狀碼向量可稱為「錯誤校正」症狀碼,且CRC症狀碼向量可稱為「總和檢查碼」症狀碼。應注意,在反覆編碼方案中,ECC同位核對矩陣通常為稀疏的,而總和檢查碼同位核對矩陣應為緊密的。因此,使用圖5中繪示之機制來更新ECC症狀碼向量(此乃因其係基於同位核對矩陣之稀疏性)及使用圖3中繪示之機制來更新CRC症狀碼向量可係有效的。
當協同類循環LDPC(QC-LDPC)ECC碼一起使用時,可基於一特定總和檢查碼結構來簡化實施一總和檢查碼之一解碼器裝置之電路。此等碼適合用於通信及儲存應用中。該特定總和檢查碼結構允許重新使用編碼器/解碼器資料路徑且因此具有極低的實施方案複雜度。此外,就偵測未被LDPC解碼器偵測到之錯誤而言,其可與習用CRC一樣有效。
用H標識解碼矩陣。較佳地,H之ECC相關部分係一LDPC碼之一低密度同位核對矩陣。而且,LDPC碼可係一QC-LDPC碼,因此低密度同位核對係一方塊矩陣,其中每一方塊係一方形矩陣,且其中每一方形矩陣係0或一循環置換矩陣(或在某些QC-LDPC碼族中,循環置換矩陣之一總和)。一循環置換矩陣係型為A k 之一矩陣,而且
此結構(亦即,一方塊矩陣,其中每一方塊係一方形矩
陣,且其中每一方形矩陣係0或一循環置換矩陣)允許LDPC解碼器之極有效硬體實施方案,此乃因其簡化在LDPC解碼期間資訊(訊息傳送解碼演算法中之訊息)自儲存LDPC碼資訊之記憶體至處理資訊之計算單元之路由。事實上,在今日之行業標準中使用之多數LDPC碼(通信及儲存應用兩者)皆可基於QC-LDPC碼。
為使得H之總和檢查碼相關部分使用同一硬體結構達成有效總和檢查碼計算,H之總和檢查碼相關部分亦可具有一方塊結構,其中每一方塊元素係0或者型為A k 之矩陣之一總和。舉例而言,H之總和檢查碼相關部分可係多個方塊元素之一陣列。每一方塊元素可係一方形矩陣。每一方形矩陣可針對該方形矩陣中之每一元素具有一零值(亦即,一「0」方塊元素),或可替代地係型為A k 之矩陣之一總和。(具有相等尺寸之兩個方形矩陣之一總和係具有相同尺寸之一方形矩陣。)若對應於總和檢查碼(一「總和檢查碼矩陣」)之一矩陣具有與QC-LDPC同位核對矩陣相同的結構,則此可暗示可預期該總和檢查碼矩陣係一稀疏矩陣。然而,為使得總和檢查碼矩陣能夠偵測未被ECC偵測到的高概率錯誤型樣(尤其是具有可能未被一LDPC解碼器偵測到之少量錯誤之型樣),總和檢查碼矩陣應係一非稀疏矩陣。然而,如本文所述,可解決此等明顯矛盾之要求。
舉例而言,考量由32個列(32次核對)構成之一總和檢查碼矩陣。
假設LDPC碼具有1000之一長度,且具有20之「最小碼字權數」(亦即,具有僅20個位元等於1之一碼字)。
若該LDPC解碼器能收斂至一合法碼c'字但不能收斂至一所期望碼字c,則最有可能該解碼器收斂至一碼字c'=c+a,其中a係該碼之一低權數碼字,具有權數w。例如,「a」可具有僅w=~20之一權數(即使碼長度為1000亦如此)。
由於ECC解碼器收斂至一錯誤碼字,因此期望此事件將被總和檢查碼「捕捉到」。在總和檢查碼偵測到未被一先前錯誤校正偵測到之一錯誤時,即宣告一總和檢查碼矩陣成功捕捉到一未被偵測之錯誤。換言之,當一碼字不滿足總和檢查碼條件時即宣告成功。若甚至在總和檢查碼矩陣計算之後錯誤仍保持未被偵測,則出現一總和檢查碼矩陣之失效。每當一錯誤碼字滿足該總和檢查碼矩陣計算時即出現此情況。
由於c係一合法碼字,因此其滿足總和檢查碼同位核對方程式。因此,若錯誤型樣a亦滿足所有32個總和檢查碼同位核對方程式,則總和檢查碼不能偵測出該錯誤。
此事件之一概率可判定如下:若(mod 2),則長度n及最小權數w之一字a將不滿足具有d為1至s之一隨機同位核對h,其中a i 係a之位元(位元之w為1且其他為0),且h i 係核對位元(核對位元之d為1且其他為0)。
概率可計算如下:
1.對於a i =1之每一i而言,概率pr(a i h i =1)由下式給出:p=pr(a i h i =1)=pr(h i =1)=d/n
2.假設個別座標為1(其係先前計算的)之概率係獨立的。對於小的w而言,此係一好的近似值。則,該同位核對將不被滿足之概率(亦即,可計算為使得奇數數目個a i h i 項(自可等於1之w個項中選出)等於1之概率。此概率由下式給出:
概率Q可以閉合形式計算如下:
及
若d=n/2則Q=1/2(對任何w而言)。
若d=n/10且w=20,則結果仍接近0.5:
然而,隨著d/n變小,一同位核對不被一隨機錯誤型樣滿足之概率開始減小且可比0.5小得多。例如,對於d=n/100且w=20而言:
具有M個同位核對之一總和檢查碼漏失偵測一錯誤之概率係滿足該總和檢查碼之所有M個同位核對之概率,其由下式給出:核對和漏失偵測概率=(1-Q) M 。
對於具有M=32個同位核對之一總和檢查碼(每一同位核對具有自n=1000個位元中選出之d=100個位元)而言,漏失偵測具有權數w=20之一錯誤型樣之概率將係
對於具有M=32個同位核對之一總和檢查碼(每一同位核對具有自n=1000個位元中選出之d=10個位元)而言,漏失偵測具有權數w=20之一錯誤型樣之概率將係
此意指為了具有極低的漏失偵測概率,應使用非稀疏同位核對(亦即,具有大量1之同位核對)。
然而,為有效硬體實施及QC-LDPC解碼器資料路徑之重新使用起見,可為總和檢查碼使用一QC-LDPC矩陣結構,且習用地QC-LDPC矩陣係稀疏的。
可建構一密集QC-LDPC矩陣結構,其可用於總和檢查碼矩陣且因此滿足具有一高密度矩陣及一QC-LDPC結構(亦即,基於置換矩陣之一方塊矩陣)之兩個要求。
可產生由子矩陣組成之一總和檢查碼矩陣作為一方塊矩
陣,該等子矩陣係置換子矩陣之總和。該等置換子矩陣可係循環置換子矩陣,亦即單位矩陣之循環移位版本。因此藉由組合大量稀疏QC結構化核對總和來解決先前闡述之問題,以使得該組合中之每一元素仍為稀疏的且可使用低複雜度硬體,同時組合諸多此等元素使得總組合為密集的。
更形式而言,總和檢查碼矩陣可結構化如下:使得z標識將協同所提議總和檢查碼一起使用之QC-LDPC ECC碼之循環置換方塊大小(亦稱為提升因子)。使得k標識將使用之QC-LDPC ECC之資訊子方塊之數目(亦即,具有k×z個資訊位元之一ECC)。然後,可將階為z×(k.z)之一總和檢查碼矩陣Σ建構為由k個子矩陣Σ 1 ,Σ 2 ,…,Σ k 構成之Σ=(Σ 1 ,Σ 2 ,…,Σ k ),其中每一子矩陣Σ i 定義為由下列方程式定義之l i 個矩陣之一總和:
其中A係階為z×z之一預定義矩陣,且l i 係預定義整數,且數字n ij 係預定義數字或隨機選擇之整數數字。在某些實施例中,l i (z/2)以避免使得Σ i 過於密集。若l i =0則Σ i 係一零矩陣。在一特定實施例中,A係一z×z置換矩陣。在某些實施例中,A係單位z×z矩陣,因此係單位矩陣之一循環版本(對應於一循環置換矩陣)。
基於所提議之總和檢查碼矩陣,可藉由使用密集總和檢
查碼矩陣Σ作為一同位核對矩陣來編碼(k-1).z個資料位元而執行編碼以產生一組k.z個經編碼資料位元,其中最後「z」個位元構成總和檢查碼位元。該等經首次編碼之資料位元可使用一同位核對矩陣H進一步編碼,其中H係由階為z×z之子矩陣H z 構成之一稀疏矩陣,且該等子矩陣中之每一者係一0矩陣或針對某一整數n z 之型為之一矩陣或針對一組整數n zi 之型為之一總和。
一總和檢查碼矩陣Σ可以一QC-LDPC結構產生,但具有高密度。每一同位核對方程式中之1之數目(標識為d)可由定義總和檢查碼矩陣Σ之整數l i 判定。根據上文提供之分析,可基於一所要求總和檢查碼偵測概率、總和檢查碼同位核對之數目(M)及LDPC碼之預期最小碼字權數(w)來計算參數d。
舉例而言,若對於1 KB資訊(n=8192)有w=20,然後對於z=32、d c =30、l i =z/2則有d=d c ×l i =480及M=32,則一總和檢查碼漏失偵測概率可係3×10-10。於此處,d c 係自滿足Σ i ≠0之k個Σ i 元素中選出之Σ i 元素之數目。
進一步應注意,該總和檢查碼矩陣具有比LDPC同位核對矩陣高的密度。(亦即,若LDPC同位核對矩陣(H)之一同位核對中之1之數目為r,則d>>r)。於一實例實施方案中,d r×z/2。
圖7中圖解說明之統一同位矩陣可包含總和檢查碼同位核對矩陣之一單個「條」,亦即該總和檢查碼同位核對矩陣具有z個列且可具有k.z行非零元素。該「總和檢查碼區
段」可對應於CRC同位位元且因此可係z×z單位矩陣而非置換矩陣之一總和。圖7之總和檢查碼同位矩陣之其餘k-1個方塊中之每一者與稀疏ECC同位核對矩陣相比可係密集的。另一選擇係,一統一同位矩陣可包含多「條」總和檢查碼同位核對矩陣,諸如具有2z個列、3z個列或更多個列。該總和檢查碼同位核對矩陣內之一或多個子矩陣可係稀疏的-或零-同時繼續提供實質總和檢查碼強度。舉例而言,若一個總和檢查碼同位核對條在一第一位置中具有一零子矩陣,且一第二總和檢查碼同位核對條在與第一位置不一致之一第二位置中具有一零子矩陣(亦即,該兩個總和檢查碼同位條之零部分不重疊),則包含該第一總和檢查碼同位核對條及第二總和檢查碼同位核對條之總和檢查碼同位核對矩陣整體而言可充分密集以滿足一特定實施方案之CRC漏失偵測概率要求。
參照圖8,展示一系統800之一特定實施例。系統800包含一資料儲存裝置802。資料儲存裝置802包含耦合至一控制器806之一記憶體804。記憶體804(例如,一NAND快閃記憶體)包含儲存元件,諸如一代表性群組之儲存元件822。儲存元件822之群組之一實例係一多位階記憶體胞(MLC)字線。資料儲存裝置802選擇性地連接至一代表性主機裝置830。
資料儲存裝置802可係一固態磁碟(SSD)裝置。資料儲存裝置802可係一記憶體卡,諸如一安全數位SD®卡、一microSD®卡、一miniSD.TM卡(德拉瓦州威明頓市
(Wilmington,Delaware)之SD-3C LLC之商標)、一MultiMediaCard.TM(MMC.TM)卡(維吉尼亞州阿靈頓市(Arlington,Virginia)之JEDEC固態技術協會(JEDEC Solid State Technology Association)之商標)或一CompactFlash®(CF)卡(加利福尼亞州米爾皮塔斯市(California,Milpitas)之SanDisk公司之商標)。另一選擇係,資料儲存裝置802可係主機裝置830中之嵌入式記憶體,諸如作為例示性實例之eMMC®(維吉尼亞州阿靈頓市(Arlington,Virginia)之JEDEC固態技術協會(JEDEC Solid State Technology Association)之商標)及eSD。
控制器806可係一記憶體控制器,其包含經組態以基於置換矩陣之總和來執行總和檢查碼(諸如CRC)之一編碼單元808。控制器806可接收來自主機裝置830之使用者資料832供儲存,且可自記憶體804擷取資料且可傳送已由主機裝置830請求之使用者資料832。因此,控制器806可與主機裝置830及與記憶體804通信。
編碼單元808可係一解碼器或一編碼器。編碼單元808包含一CRC組件810,該CRC組件經組態以使用置換矩陣812之總和執行CRC計算。舉例而言,置換矩陣812可係循環置換矩陣。CRC組件810可包含關於圖7闡述之總和檢查碼同位核對矩陣。編碼單元808亦可包含一ECC組件,諸如圖解說明為一QC-LDPC組件814之一LDPC組件。置換矩陣812可由QC-LDPC組件814及由CRC組件810使用。
作為一實例,編碼單元808可實施在圖1之解碼器10中圖
解說明之架構,且可包含諸如RAM、ROM及硬體處理裝置之組件。在某些實施方案中,編碼單元808可經組態以執行收斂偵測,諸如關於圖2至圖5中之任一者或其任一組合所闡述。在其他實施方案中,編碼單元808可不經組態以執行關於圖2至圖5中任一者所闡述之收斂偵測。
編碼單元808可經組態以在資料儲存於記憶體804處之前執行資料編碼。舉例而言,編碼單元808可將基於置換矩陣812中之一或多者之總和的一CRC矩陣施加至所接收使用者資料832以產生使用者資料832之CRC同位性。編碼單元808可執行使用者資料832及CRC同位之ECC編碼,諸如藉助於QC-LDPC組件814,以產生將發送至記憶體804以便儲存之一ECC碼字。
另一選擇係,或另外,編碼單元808可經組態以執行自記憶體804擷取之資料之解碼。編碼單元808可應用一ECC解碼操作(諸如藉助於QC-LDPC組件814),該ECC解碼操作可返回由一反覆解碼過程之一收斂導致的一資料字。可將該資料字提供給CRC組件810以比較該資料字中之CRC同位性與基於該資料字之一使用者資料部分而產生之CRC同位性。另一選擇係,可在運作中產生該CRC同位性,諸如關於圖5所闡述。舉例而言,控制器806可經組態以在一碼字之一表示之一反覆錯誤校正編碼(ECC)解碼操作之一反覆期間回應於判定該等資料位元中之至少一者之一值之一估計已改變而更新總和檢查碼症狀碼值。控制器806可包含一收斂偵測器(例如,圖5之收斂偵測器52),該收斂偵測
器經組態以回應於偵測到與解碼該碼字之表示相關聯之所有ECC症狀碼位元及所有CRC症狀碼位元具有一零值而產生一收斂信號。
雖然將編碼單元808圖解說明為包含一ECC組件(諸如QC-LDPC組件814),但應瞭解,在其他實施例中,編碼單元808可在並不實施一ECC組件之情況下包含基於置換矩陣812之一或多者之總和之CRC組件810。
在一記憶體裝置之一編碼單元(諸如資料儲存裝置802之編碼單元808)處可執行一種用於編碼資料位元之方法。該方法可包含基於資料位元來計算總和檢查碼同位位元。該等資料位元及總和檢查碼同位位元所滿足之一組方程式對應於一密集同位核對矩陣。舉例而言,基於k個子矩陣Σ 1 ,Σ 2 ,…,Σ k ,可將階為z×(k.z)之一總和檢查碼矩陣Σ建構為Σ=(Σ 1 ,Σ 2 ,…,Σ k ),其中每一子矩陣Σ i 定義為l i 個矩陣之一總和。該密集同位核對矩陣包含置換子矩陣之總和。該等置換子矩陣可係循環置換子矩陣(例如,每一子矩陣Σ i 可定義為l個矩陣之一總和)。
在一特定實施例中,可回應於一矩陣之具有非零值之元素之一百分比或比例超過一臨限值而將該矩陣視為「密集」。作為例示性、非限定性實例,臨限值可係10%、三分之一或一半。為圖解說明,該同位核對矩陣之密度可對應於具有非零值之矩陣元素之一百分比。舉例而言,密集同位核對矩陣可包含若干個元素。密集同位核對矩陣可具有對應於非零元素之數目之至少10%之一密度。作為另一
實例,該密集同位核對矩陣可具有對應於非零元素之數目之至少三分之一的一密度。作為另一實例,該密集同位核對矩陣可具有對應於非零元素之數目之實質上一半之一密度。
在另一實施例中,可回應於經求和以產生該矩陣之每一方塊之置換子矩陣之數目大於一臨限值(例如,針對每一子矩陣Σ i 有l i >臨限值)而將一矩陣視為「密集」。作為例示性、非限定性實例,該臨限值可係諸如1或2之一數字,或可基於一子矩陣尺寸(例如,l i >0.4z或l i 0.5z)。舉例而言,該密集同位核對矩陣可具有對應於置換子矩陣之總和(該等置換子矩陣中之至少兩者之一總和)中之每一者之一密度。作為另一實例,該密集同位核對矩陣可具有對應於置換子矩陣之總和(該等置換子矩陣中之兩者以上之一總和)中之每一者之一密度。作為另一實例,該密集同位核對矩陣可具有對應於該等置換子矩陣之總和(若干個該等置換子矩陣之一總和)中之每一者之一密度,其中該若干個置換子矩陣為該等置換子矩陣中之一者之一尺寸之實質上一半。
在另一實施例中,可回應於非零元素之一數目在與元素之一總數目相比時的一比率超過一密度臨限值而將一矩陣視為「密集」。舉例而言,該密集同位核對矩陣可具有對應於該密集同位核對矩陣之非零元素之一數目在與該密集同位核對矩陣之元素之一總數目相比時的一比率之一密度,且該比率超過一密集臨限值。作為一實例,該密度臨
限值可係大約0.4。該密集同位核對矩陣可進一步經約束以使得非零元素對總元素之比率小於大約0.6。
可基於資料位元及總和檢查碼同位位元來計算錯誤校正編碼(ECC)同位位元。由資料位元、總和檢查碼同位位元及ECC同位位元滿足之一第二組方程式(亦即,對應於圖7之ECC同位核對矩陣)可對應於一稀疏同位核對矩陣。該稀疏同位核對矩陣可限於置換子矩陣及零子矩陣。
在一特定實施例中,可基於與另一矩陣之一比較而將一矩陣視為「密集」。舉例而言,該密集同位核對矩陣可具有該稀疏同位核對矩陣之一密度的至少兩倍之一密度。作為另一實例,該密集同位核對矩陣可具有該稀疏同位核對矩陣之一密度的至少三倍之一密度。
該稀疏同位核對矩陣可具有對應於該稀疏同位核對矩陣之非零元素之一數目在與該稀疏同位核對矩陣之元素之一總數目相比時的一比率之一密度。該比率可小於一稀疏臨限值。舉例而言,該稀疏臨限值可係大約0.1。
一種編碼資料位元之方法可包含建構一同位核對矩陣Σ=(Σ 1 ,Σ 2 ,…,Σ k )其中Σ具有階為z×(k.z)且包括k個子矩陣Σ 1 ,Σ 2 ,…,Σ k ,其中z及k係整數,其中每一子矩陣Σ i 定義為l i 個矩陣之一總和,如:
其中A係階為z×z之一預定義矩陣,且每一l i 係一預定義整
數,且其中數字n ij 係預定義數字或隨機選擇之整數數字。該方法亦包含使用同位核對矩陣Σ來編碼(k-1).z個資料位元以產生一組k.z個經首次編碼資料位元。該方法可在一資料儲存裝置之一編碼單元處執行,諸如在圖8之編碼單元808處。
該方法亦可包含使用一同位核對矩陣H來編碼該等經首次編碼資料位元,其中H包括階為z×z之子矩陣H z 。子矩陣H z 中之每一者可係一0矩陣或型為(n z 係一整數)之一矩陣。
可藉由將一循環置換應用於階為z×z之單位矩陣之列或行來產生A。在某些實施例中,l i 大於或等於c.z且c係大於或等於0.4之一預定義數字。在某些實施例中,z可大於或等於十。矩陣H中之非零元素之一數目在與矩陣H中之元素之一總數目相比時的一比率可小於0.1。
儘管圖8繪示在一資料儲存裝置(諸如一快閃記憶體卡)內使用置換矩陣之總和之CRC之一實施方案,但在其他實施例中,可在其他系統中實施使用置換矩陣之總和之CRC。舉例而言,一傳輸器可使用置換矩陣之總和產生CRC同位性(在執行諸如QC-LDPC編碼之ECC編碼之情況下或無需執行ECC編碼)用於一訊息經由一通信系統之傳輸(例如,經由一無線網路、經由一纜線網路或經由其任一組合)。一接收器可產生一CRC症狀碼以核對所接收訊息之一完整性(在執行諸如QC-LDPC編碼之ECC編碼之情況下或無需執行ECC編碼)。
儘管本文所繪示之各種組件係圖解說明為區塊組件且以通用術語來闡述,但此等組件可包含一或多個微處理器、狀態機或經組態以使得該等組件(例如,圖8之編碼單元808)能夠執行歸屬於此等組件之特定功能之其他電路。舉例而言,CRC組件810可表示實體組件,諸如硬體控制器、狀態機、邏輯電路或其他結構,以使得編碼單元808能夠使用一或多個置換矩陣之總和來執行CRC操作。
編碼單元808可包含專用硬體(亦即,電路)以實施CRC組件810。另一選擇係,或另外,編碼單元808可使用一或多個硬體處理單元(諸如圖1中圖解說明之處理器18)來實施CRC組件810。在一特定實施例中,編碼單元808包含由處理器18或其他處理器執行之指令,且該等指令儲存於記憶體804處。另一選擇係,或另外,由一處理器執行之可包含於編碼單元808中之指令可儲存於並非記憶體804之部分之一單獨記憶體位置處,諸如在一唯讀記憶體(ROM)處。
在一特定實施例中,包含編碼單元808之資料儲存裝置802可在經組態以選擇性地耦合至一或多個外部裝置之一可攜式裝置中實施。然而,在其他實施例中,可將包含編碼單元808之資料儲存裝置802附裝或嵌入於一或多個主機裝置內,諸如在一主機可攜式通信裝置之一外殼內。舉例而言,包含編碼單元808之資料儲存裝置802可在一經封裝設備內,例如一無線電話、一個人數位助理(PDA)、一遊戲裝置或控制台、一可攜式導航裝置或使用內部非揮發性記憶體之其他裝置。在一特定實施例中,編碼單元808可
與一非揮發性記憶體耦合或連同該非揮發性記憶體一起使用,該非揮發性記憶體諸如三維(3D)記憶體、快閃記憶體(例如,NAND、NOR、多位階記憶體胞(MLC)、分開式位元線NOR(DINOR)、AND、高電容性耦合比(HiCR)、非對稱性非接觸式電晶體(ACT)或其他快閃記憶體)、可抹除可程式化唯讀記憶體(EPROM)、電可抹除可程式化唯讀記憶體(EEPROM)、唯讀記憶體(ROM)、單次可程式化記憶體(OTP)或任一其他類型之記憶體。
本文中所闡述之實施例之圖解說明意欲提供對各種實施例之一大體理解。可利用其他實施例及自該揭示內容導出其他實施例,以使得可在不背離該揭示內容之範疇之情況下做出結構及邏輯替換及改變。此揭示內容意欲涵蓋各種實施例之任一及所有後續改變或變化。因此,應將該揭示內容及該等圖視為例示性而非約束性。
上文所揭示之標的物應視為例示性而非約束性,且隨附申請專利範圍意欲涵蓋所有此等修改、強化及屬於本發明揭示內容之範疇內之其他實施例。因此,在法律允許之最大程度內,本發明之範疇將由下文申請專利範圍及其等效內容之所准許最廣泛解譯來判定,且不應由前述詳細說明約束或限定。
10‧‧‧反覆解碼器/解碼器
12‧‧‧位元估計值隨機存取記憶體
14‧‧‧唯讀記憶體/碼描述唯讀記憶體
16‧‧‧路由層
18‧‧‧處理單元
20‧‧‧高速暫存隨機存取記憶體
22‧‧‧收斂偵測區塊
30‧‧‧「互斥或」閘極/核對方程式「互斥或」閘極
40‧‧‧解碼器
42‧‧‧收斂偵測區塊/即時收斂偵測區塊
44‧‧‧症狀碼向量更新區塊
45‧‧‧症狀碼向量更新區塊
46‧‧‧暫存器
48‧‧‧靜態唯讀記憶體
50‧‧‧解碼器
52‧‧‧收斂偵測區塊/即時收斂偵測區塊
54‧‧‧先進先出緩衝器
56‧‧‧靜態隨機存取記憶體
800‧‧‧系統
802‧‧‧資料儲存裝置
804‧‧‧記憶體
806‧‧‧控制器
808‧‧‧編碼單元
810‧‧‧循環冗餘核對組件
812‧‧‧置換矩陣
814‧‧‧類循環低密度同位核對組件
822‧‧‧儲存元件
830‧‧‧代表性主機裝置/主機裝置
832‧‧‧使用者資料
P1‧‧‧症狀碼位元
Pz‧‧‧症狀碼位元
q1‧‧‧位元由處理單元更新之前的「軟」位元估計值
‧‧‧位元由處理單元更新之前的「軟」位元估計
值
qz‧‧‧位元由處理單元更新之後的「軟」位元估計值
‧‧‧位元由處理單元更新之後的「軟」位元估計值
C1‧‧‧q1的對應「硬」決策
‧‧‧的對應「硬」決策
CZ‧‧‧qz的對應「硬」決策
‧‧‧的對應「硬」決策
f1‧‧‧位元翻轉指示符之一行向量
fz‧‧‧位元翻轉指示符之一行向量
S0‧‧‧症狀碼向量
S1‧‧‧症狀碼向量
S2‧‧‧症狀碼向量
SM-1‧‧‧症狀碼向量
Ws‧‧‧症狀碼權數計數
圖1係一反覆解碼器之一方塊圖;圖2圖解說明用於即時解碼器收斂偵測之電路之一第一實施例;
圖3圖解說明用於即時解碼器收斂偵測之一解碼器之一第一實施例;圖4圖解說明可如何使用圖3之症狀碼向量更新區塊來初始化該症狀碼向量;圖5圖解說明用於即時解碼器收斂偵測之一解碼器之一第二實施例;圖6係使用一總和檢查碼及一ECC兩者之一編碼器之一方塊圖;圖7圖解說明用於聯合即時解碼器收斂偵測及總和檢查碼計算之一經擴展矩陣;及圖8圖解說明包含一資料儲存裝置之一系統,該資料儲存裝置包含經組態以執行CRC處理之一編碼單元,其中該CRC處理基於置換矩陣之總和。
10‧‧‧反覆解碼器/解碼器
12‧‧‧位元估計值隨機存取記憶體
14‧‧‧唯讀記憶體/碼描述唯讀記憶體
16‧‧‧路由層
18‧‧‧處理單元
20‧‧‧高速暫存隨機存取記憶體
22‧‧‧收斂偵測區塊
Claims (14)
- 一種方法,其包括:在一資料儲存裝置之一編碼單元處,執行:基於資料位元來計算總和檢查碼同位位元,其中該等資料位元及該等總和檢查碼同位位元所滿足之一組方程式對應於一密集同位核對矩陣,且其中該密集同位核對矩陣包括置換子矩陣之總和。
- 如請求項1之方法,其進一步包括基於該等資料位元及該等總和檢查碼同位位元來計算錯誤校正編碼(ECC)同位位元,其中該等資料位元、該等總和檢查碼位元及該等ECC同位位元所滿足之一第二組方程式對應於一稀疏同位核對矩陣。
- 如請求項1之方法,其中該密集同位核對矩陣具有對應於該密集同位核對矩陣之非零元素之一數目在與該密集同位核對矩陣之元素之一總數目相比時的一比率之一密度,且其中該比率超過一密集臨限值。
- 如請求項3之方法,其中該密集臨限值係大約0.4。
- 如請求項4之方法,其中該比率小於大約0.6。
- 一種編碼資料位元之方法,該方法包括:在一資料儲存裝置之一編碼單元中:建構一同位核對矩陣Σ=(Σ 1 ,Σ 2 ,…,Σ k );其中Σ具有階為z×(k.z)且包括k個子矩陣Σ 1 ,Σ 2 ,…,Σ k ,其中z及k係整數,其中每一子矩陣Σ i 定義為 l i 個矩陣之一總和,如:
- 如請求項6之方法,其進一步包括使用一同位核對矩陣H來編碼該等經首次編碼資料位元,其中H包括階為z×z之子矩陣H z ,其中該等子矩陣H z 中之每一者係一0矩陣或型為之一矩陣,且其中n z 係一整數。
- 如請求項6之方法,其中藉由將一循環置換應用於階為z×z之單位矩陣之列或行來產生A。
- 如請求項6之方法,其中l i 大於或等於c.z,且其中c係大於或等於0.4之一預定義數字。
- 如請求項6之方法,其中z大於或等於十。
- 如請求項6之方法,其中該矩陣H中之非零元素之一數目在與該矩陣H中之元素之一總數目相比時的一比率小於0.1。
- 一種資料儲存裝置,其包括:一記憶體;及一控制器,其耦合至該記憶體,其中該控制器經組態以基於資料位元來計算總和檢查碼同位位元,其中該等 資料位元及該等總和檢查碼同位位元所滿足之一組方程式對應於一密集同位核對矩陣,且其中該密集同位核對矩陣包括置換子矩陣之總和。
- 如請求項12之資料儲存裝置,其中該控制器進一步經組態以在一碼字之一表示之一反覆錯誤校正編碼(ECC)解碼操作之一反覆期間回應於判定該等資料位元中之至少一者之一值之一估計已改變而更新總和檢查碼症狀碼值。
- 如請求項13之資料儲存裝置,其中該控制器包含一收斂偵測器,該收斂偵測器經組態以回應於偵測到與解碼該碼字之該表示相關聯之所有ECC症狀碼位元及所有CRC症狀碼位元具有一零值而產生一收斂信號。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161513186P | 2011-07-29 | 2011-07-29 | |
US13/558,846 US8880987B2 (en) | 2011-07-29 | 2012-07-26 | Checksum using sums of permutation sub-matrices |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201319800A true TW201319800A (zh) | 2013-05-16 |
Family
ID=47598292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101127332A TW201319800A (zh) | 2011-07-29 | 2012-07-27 | 使用置換子矩陣之總和的總和檢查碼 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8880987B2 (zh) |
EP (1) | EP2737630A2 (zh) |
KR (1) | KR101854954B1 (zh) |
TW (1) | TW201319800A (zh) |
WO (1) | WO2013019560A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI677877B (zh) * | 2017-11-29 | 2019-11-21 | 台灣積體電路製造股份有限公司 | 用於校正記憶體裝置的方法及記憶體裝置 |
CN110999092A (zh) * | 2017-06-19 | 2020-04-10 | 南布列塔尼大学 | 非二进制ldpc码的简化的预排序的基于校正子的扩展最小和(ems)解码 |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782487B2 (en) * | 2012-04-18 | 2014-07-15 | Lsi Corporation | Systems and methods for locating and correcting decoder mis-corrections |
US8782488B2 (en) * | 2012-04-20 | 2014-07-15 | Lsi Corporation | Systems and methods for back step data decoding |
TWI477104B (zh) * | 2012-09-13 | 2015-03-11 | Mstar Semiconductor Inc | 錯誤校正裝置與錯誤校正方法 |
US9116822B2 (en) * | 2012-12-07 | 2015-08-25 | Micron Technology, Inc. | Stopping criteria for layered iterative error correction |
KR102068030B1 (ko) * | 2012-12-11 | 2020-01-20 | 삼성전자 주식회사 | 메모리 컨트롤러 및 그 동작방법 |
WO2014109756A1 (en) | 2013-01-11 | 2014-07-17 | Empire Technology Development Llc | Page allocation for flash memories |
US9214959B2 (en) | 2013-02-19 | 2015-12-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for skip layer data decoding |
KR101742462B1 (ko) | 2013-02-27 | 2017-06-01 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | 메모리 디바이스들을 위한 선형 프로그래밍 기반 디코딩 |
WO2014139123A1 (en) * | 2013-03-14 | 2014-09-18 | Qualcomm Incorporated | Method and apparatus of ldpc decoder with lower error floor |
CN103259543A (zh) * | 2013-04-16 | 2013-08-21 | 荣成市鼎通电子信息科技有限公司 | 深空通信中准循环ldpc码生成多项式的并行产生装置 |
KR101913900B1 (ko) * | 2013-04-30 | 2018-10-31 | 웨스턴 디지털 테크놀로지스, 인코포레이티드 | 조기 디코딩 종료 검출을 갖는 디코더 |
US9274889B2 (en) | 2013-05-29 | 2016-03-01 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for data processing using global iteration result reuse |
US8959414B2 (en) | 2013-06-13 | 2015-02-17 | Lsi Corporation | Systems and methods for hybrid layer data decoding |
US8917466B1 (en) | 2013-07-17 | 2014-12-23 | Lsi Corporation | Systems and methods for governing in-flight data sets in a data processing system |
US8817404B1 (en) | 2013-07-18 | 2014-08-26 | Lsi Corporation | Systems and methods for data processing control |
US9196299B2 (en) | 2013-08-23 | 2015-11-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for enhanced data encoding and decoding |
US8908307B1 (en) | 2013-08-23 | 2014-12-09 | Lsi Corporation | Systems and methods for hard disk drive region based data encoding |
US10108483B2 (en) * | 2013-08-26 | 2018-10-23 | Samsung Electronics Co., Ltd. | Computing system with error handling mechanism and method of operation thereof |
US9400797B2 (en) | 2013-09-17 | 2016-07-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for recovered data stitching |
US9229801B2 (en) * | 2013-09-24 | 2016-01-05 | Sandisk Technologies Inc. | Method and device for write abort protection |
US9219503B2 (en) | 2013-10-16 | 2015-12-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for multi-algorithm concatenation encoding and decoding |
RU2573243C2 (ru) * | 2013-10-28 | 2016-01-20 | Общество с ограниченной ответственностью "Топкон Позишионинг Системс" | Способ и устройство для измерения текущего отношения сигнал/шум при декодировании ldpc-кодов (варианты) |
US9323606B2 (en) | 2013-11-21 | 2016-04-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for FAID follower decoding |
US9859925B2 (en) | 2013-12-13 | 2018-01-02 | Empire Technology Development Llc | Low-complexity flash memory data-encoding techniques using simplified belief propagation |
KR102108386B1 (ko) * | 2013-12-23 | 2020-05-08 | 삼성전자주식회사 | 저장 장치 및 그것의 데이터 엔코딩 및 디코딩 방법들 |
RU2014104571A (ru) | 2014-02-10 | 2015-08-20 | ЭлЭсАй Корпорейшн | Системы и способы для эффективного с точки зрения площади кодирования данных |
US9378765B2 (en) | 2014-04-03 | 2016-06-28 | Seagate Technology Llc | Systems and methods for differential message scaling in a decoding process |
WO2015152922A1 (en) * | 2014-04-03 | 2015-10-08 | Empire Technology Development Llc | Memory device with speculated bit flip threshold |
TWI541820B (zh) * | 2014-07-10 | 2016-07-11 | 群聯電子股份有限公司 | 解碼方法、記憶體控制電路單元及記憶體儲存裝置 |
US20160087653A1 (en) * | 2014-07-28 | 2016-03-24 | Lsi Corporation | Decoder With Targeted Symbol Flipping Recovery Of Miscorrected Codewords |
US9595977B2 (en) | 2014-09-29 | 2017-03-14 | Apple Inc. | LDPC decoder with efficient circular shifters |
CN106209114B (zh) * | 2015-04-29 | 2019-11-12 | 深圳忆联信息系统有限公司 | 译码方法及装置 |
US9742439B1 (en) * | 2015-06-08 | 2017-08-22 | Microsemi Solutions (U.S.), Inc. | Method and device for forward error correction decoder system utilizing orthogonality of an H matrix |
DE102015111729B4 (de) * | 2015-07-20 | 2017-03-30 | Infineon Technologies Ag | Verfahren und decoder zum bestimmen eines fehlervektors für ein datenwort gemäss einem reed-muller-code |
US10075190B2 (en) * | 2015-10-27 | 2018-09-11 | Sandisk Technologies Llc | Adaptive scheduler for decoding |
US20170222659A1 (en) * | 2016-02-02 | 2017-08-03 | Silicon Motion Inc. | Power improvement for ldpc |
US9747790B1 (en) * | 2016-02-12 | 2017-08-29 | King Fahd University Of Petroleum And Minerals | Method, device, and computer-readable medium for correcting at least one error in readings of electricity meters |
US10128869B2 (en) * | 2016-05-17 | 2018-11-13 | Apple Inc. | Efficient convergence in iterative decoding |
US10348334B2 (en) | 2016-10-25 | 2019-07-09 | International Business Machines Corporation | Reducing a decoding error floor by post-processing codewords encoded by binary symmetry-invariant product codes |
TWI631830B (zh) * | 2016-12-30 | 2018-08-01 | 慧榮科技股份有限公司 | 解碼方法與相關解碼裝置 |
US10409732B2 (en) * | 2017-05-31 | 2019-09-10 | Nxp Usa, Inc. | Sparse matrix accelerator |
US10379952B2 (en) * | 2017-06-16 | 2019-08-13 | Western Digital Technologies, Inc. | Data recovery and regeneration using parity code |
US20190166624A1 (en) * | 2017-11-28 | 2019-05-30 | Huawei Technologies Canada Co., Ltd. | Systems and methods for communication resource usage control |
CN107911123B (zh) * | 2017-12-09 | 2019-09-17 | 天津大学 | 针对深空应用的一类低密度奇偶校验码的编码方法 |
TWI707231B (zh) * | 2018-09-28 | 2020-10-11 | 大陸商深圳大心電子科技有限公司 | 解碼器設計方法與儲存控制器 |
US11468086B2 (en) * | 2018-12-28 | 2022-10-11 | Verizon Patent And Licensing Inc. | Method and system for concurrent generation of data sketches |
US11468068B2 (en) | 2018-12-28 | 2022-10-11 | Verizon Patent And Licensing Inc. | Method and system for concurrent generation of data sketches |
US10979072B2 (en) * | 2019-03-19 | 2021-04-13 | Western Digital Technologies, Inc. | Punctured bit estimation and bit error rate estimation |
US11088712B2 (en) | 2019-11-05 | 2021-08-10 | Western Digital Technologies, Inc. | Iterative decoder performance prediction using machine learning |
US10944429B1 (en) * | 2020-01-02 | 2021-03-09 | Silicon Motion, Inc. | Data accessing method using data protection with aid of parity check matrix having partial sequential information, and associated apparatus |
US10998920B1 (en) | 2020-02-26 | 2021-05-04 | Apple Inc. | Overcoming saturated syndrome condition in estimating number of readout errors |
EP4128594A1 (en) * | 2020-03-23 | 2023-02-08 | Telefonaktiebolaget LM ERICSSON (PUBL) | Verifying data integrity in a receiver |
US11349498B2 (en) * | 2020-10-08 | 2022-05-31 | Micron Technology, Inc. | Bit flipping low-density parity-check decoders with low error floor |
US11456757B2 (en) * | 2020-12-16 | 2022-09-27 | SK Hynix Inc. | Oscillation detection and mitigation in bit-flipping decoders |
CN112821895B (zh) * | 2021-04-16 | 2021-07-09 | 成都戎星科技有限公司 | 一种实现信号高误码率下的编码识别方法 |
US11621727B2 (en) | 2021-06-04 | 2023-04-04 | SK Hynix Inc. | Decoding systems and methods for local reinforcement |
US20240120947A1 (en) * | 2022-10-07 | 2024-04-11 | Micron Technology, Inc. | Error detection and classification at a host device |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6070182A (en) * | 1998-06-05 | 2000-05-30 | Intel Corporation | Data processor having integrated boolean and adder logic for accelerating storage and networking applications |
US6658478B1 (en) * | 2000-08-04 | 2003-12-02 | 3Pardata, Inc. | Data storage system |
US7178080B2 (en) * | 2002-08-15 | 2007-02-13 | Texas Instruments Incorporated | Hardware-efficient low density parity check code for digital communications |
US7805652B1 (en) | 2006-02-10 | 2010-09-28 | Marvell International Ltd. | Methods for generating and implementing quasi-cyclic irregular low-density parity check codes |
MX2009001546A (es) | 2006-08-11 | 2009-12-15 | Aclara Power Line Systems Inc | Metodo para corregir errores de mensaje con el uso de la prueba de redundancia ciclica. |
US20090282316A1 (en) | 2008-05-07 | 2009-11-12 | Texas Instruments Incorporated | Memory Access in Low-Density Parity Check Decoders |
US8464123B2 (en) * | 2009-05-07 | 2013-06-11 | Ramot At Tel Aviv University Ltd. | Matrix structure for block encoding |
US8321746B2 (en) | 2009-07-30 | 2012-11-27 | Lsi Corporation | Systems and methods for quasi-cyclic LDPC code production and decoding |
US8381083B2 (en) * | 2009-10-22 | 2013-02-19 | Arm Limited | Error control coding for single error correction and double error detection |
US8612834B2 (en) * | 2011-03-08 | 2013-12-17 | Intel Corporation | Apparatus, system, and method for decoding linear block codes in a memory controller |
-
2012
- 2012-07-26 KR KR1020147004642A patent/KR101854954B1/ko active IP Right Grant
- 2012-07-26 WO PCT/US2012/048364 patent/WO2013019560A2/en active Application Filing
- 2012-07-26 EP EP12743338.1A patent/EP2737630A2/en not_active Withdrawn
- 2012-07-26 US US13/558,846 patent/US8880987B2/en active Active
- 2012-07-27 TW TW101127332A patent/TW201319800A/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110999092A (zh) * | 2017-06-19 | 2020-04-10 | 南布列塔尼大学 | 非二进制ldpc码的简化的预排序的基于校正子的扩展最小和(ems)解码 |
CN110999092B (zh) * | 2017-06-19 | 2023-11-07 | 南布列塔尼大学 | 非二进制ldpc码的简化的预排序的基于校正子的扩展最小和(ems)解码 |
TWI677877B (zh) * | 2017-11-29 | 2019-11-21 | 台灣積體電路製造股份有限公司 | 用於校正記憶體裝置的方法及記憶體裝置 |
Also Published As
Publication number | Publication date |
---|---|
KR20140078610A (ko) | 2014-06-25 |
WO2013019560A3 (en) | 2013-07-11 |
US20130031440A1 (en) | 2013-01-31 |
US8880987B2 (en) | 2014-11-04 |
EP2737630A2 (en) | 2014-06-04 |
WO2013019560A2 (en) | 2013-02-07 |
KR101854954B1 (ko) | 2018-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201319800A (zh) | 使用置換子矩陣之總和的總和檢查碼 | |
US8645810B2 (en) | Fast detection of convergence or divergence in iterative decoding | |
TWI517173B (zh) | 更新可靠度資料之設備及方法 | |
KR101645906B1 (ko) | 계층적 반복 에러 교정을 위한 종료 기준 | |
CN109783270B (zh) | 用于解码纠错码的系统和方法 | |
TWI411912B (zh) | 使用寫入驗證之代碼之錯誤底限減緩 | |
CN113032178B (zh) | 存储器控制器及快闪存储器的存取方法 | |
US9170877B2 (en) | Resolving trapping sets | |
KR102643457B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
CN102017425B (zh) | 用于执行级联纠错的方法和系统 | |
US9075739B2 (en) | Storage device | |
CN109586731B (zh) | 用于解码纠错码的系统和方法 | |
JP5631846B2 (ja) | 半導体メモリ装置および復号方法 | |
CN103514061A (zh) | 用于打破陷阱集的装置和方法 | |
US9553608B2 (en) | Data storage device decoder and method of operation | |
TW201322646A (zh) | 具有減少的記憶體與功率需求之錯誤校正解碼 | |
TW201606783A (zh) | 利用混碼器的編碼器旁路 | |
WO2023246473A1 (zh) | 一种译码方法、芯片及相关装置 | |
JP7429223B2 (ja) | ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 | |
CN109935263A (zh) | 非易失性存储器的编译码方法及存储系统 | |
CN115686926A (zh) | 硬件实现方法、终端及存储介质 | |
CN117632573A (zh) | 存储器控制器及低密度同位元查核码的位元翻转方法 | |
Shetty et al. | Design and construction of BCH codes for enhancing data integrity in multi level flash memories | |
Chang | Joint Decoding of Content-Replicated Codes on AWGNC for Flash Memory | |
Surekha et al. | IMPLEMENTATION OF LOW-COMPLEXITY LDPC CODES FOR LOSSLESS APPLICATIONS |