TWI445009B - 多重錯誤更正碼的可配置編碼系統及方法 - Google Patents
多重錯誤更正碼的可配置編碼系統及方法 Download PDFInfo
- Publication number
- TWI445009B TWI445009B TW099121756A TW99121756A TWI445009B TW I445009 B TWI445009 B TW I445009B TW 099121756 A TW099121756 A TW 099121756A TW 99121756 A TW99121756 A TW 99121756A TW I445009 B TWI445009 B TW I445009B
- Authority
- TW
- Taiwan
- Prior art keywords
- error correction
- parameter
- codec
- ecc
- configurable
- 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/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
-
- 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
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- 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
-
- 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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/353—Adaptation to the channel
-
- 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/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
-
- 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6511—Support of multiple decoding rules, e.g. combined MAP and Viterbi 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6513—Support of multiple code types, e.g. unified decoder for LDPC and turbo 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Description
本發明係有關編碼,特別是關於一種適用於記憶體裝置的多重錯誤更正碼(ECC)之可配置編碼系統及方法。
由於一般的非揮發性記憶體裝置(non-volatile memory),例如快閃記憶體(flash memory),容易產生錯誤(error-prone),故通常會配置編解碼器(encoder/decoder或codec),用以更正記憶體存取時所產生的錯誤。目前所發展的各種快閃記憶體類型,各具不同的資料長度及檢查碼長度。在某些應用中,同一個快閃記憶體控制器必須能支援不同類型的快閃記憶體,用以確保所有快閃記憶體的資料正確性。換句話說,編解碼器必須具有多重錯誤更正碼的可配置功能。
然而,若要使用多重錯誤更正碼,則必須使用各種參數來初始化編解碼器,而部分的參數長度卻是相當長的,因而會增加編解碼器或快閃記憶體控制器的電路面積。再者,儲存參數於編解碼器或控制器中會使得電路的設計缺乏彈性。
鑑於傳統編解碼器不能對快閃記憶體有效率地且經濟地提供多重
錯誤更正碼,因此亟需提出一種新穎的編碼系統及方法,在不增加成本的前提下,能減輕編解碼器對於儲存大量參數的負擔。
鑑於上述,本發明實施例之目的之一在於提出一種適用於記憶體裝置的多重錯誤更正碼(ECC)之可配置編碼系統及方法,用以有效且經濟地提供無誤(error-free)的參數。
根據本發明第一實施例,錯誤更正碼(ECC)編解碼器選擇地使用不同參數以進行各種錯誤更正。使用至少一無誤儲存裝置以儲存無誤參數,其中,一選擇無誤參數從儲存裝置下載到ECC編解碼器,用以對ECC編解碼器進行初始化。
根據本發明第二實施例,ECC編解碼器選擇地使用不同參數以進行各種錯誤更正。使用外部記憶體裝置以儲存不同參數。輔助編解碼器從外部記憶體裝置中選擇並下載儲存參數其中之一。輔助編解碼器根據內建參數以更正下載參數,因而產生無誤參數以提供給ECC編解碼器,用以對ECC編解碼器進行初始化。
根據本發明第三實施例,ECC編解碼器選擇地使用不同參數以進行各種錯誤更正。使用無誤儲存裝置以儲存無誤固定參數,其被下載至ECC編解碼器,用以對其進行初始化。外部記憶體裝置儲存不同參數。ECC編解碼器從外部記憶體裝置中選擇並下載儲存參數其中之一,並根據固定參數以更正下載參數,因而產生無誤參數。
1‧‧‧控制器
10‧‧‧編解碼器
100‧‧‧編碼器
102‧‧‧解碼器
12‧‧‧記憶體裝置
12a-12n‧‧‧記憶體裝置
14‧‧‧電腦
20‧‧‧可配置編碼系統
20B‧‧‧可配置編碼系統
22a-22n‧‧‧非揮發性記憶體
200‧‧‧錯誤更正碼編解碼器
201-204‧‧‧步驟
201B-204B‧‧‧步驟
30‧‧‧可配置編碼系統
300A‧‧‧第一錯誤更正碼編解碼器
300B‧‧‧第二錯誤更正碼編解碼器
301-305‧‧‧步驟
40‧‧‧可配置編碼系統
400A‧‧‧錯誤更正碼編解碼器
400B‧‧‧儲存裝置
401-405‧‧‧步驟
SD1-SDn‧‧‧儲存裝置
SD‧‧‧儲存裝置
第一A圖方塊圖顯示本發明實施例之用於記憶體裝置之多重錯誤更正碼的可配置編解碼器。
第一B圖方塊圖顯示第一A圖的另一種實施例之用於記憶體裝置之多重錯誤更正碼的可配置編解碼器。
第二A圖方塊圖顯示本發明第一實施例之用於記憶體裝置之多重錯誤更正碼的可配置編碼系統。
第二B圖流程圖顯示第一實施例之用於記憶體裝置之多重錯誤更正碼的可配置編碼方法。
第二C圖方塊圖顯示第二A圖的另一種實施例,其可用於記憶體裝置之多重錯誤更正碼的可配置編碼系統。
第二D圖顯示第二C圖實施例之用於記憶體裝置之多重錯誤更正碼的可配置編碼方法之流程圖。
第三A圖方塊圖顯示本發明第二實施例之用於記憶體裝置之多重錯誤更正碼的可配置編碼系統。
第三B圖流程圖顯示第二實施例之用於記憶體裝置之多重錯誤更正碼的可配置編碼方法。
第四A圖方塊圖顯示本發明第三實施例之用於記憶體裝置之多重錯誤更正碼的可配置編碼系統。
第四B圖流程圖顯示第三實施例之用於記憶體裝置之多重錯誤更正碼的可配置編碼方法。
第一A圖顯示本發明實施例之多重錯誤更正碼(error correcting code,ECC)的可配置編解碼器(configurable codec)10之功能方塊圖,其可適用於記憶體裝置12a-12n。在本實施例中,編解碼器10可使用其中的一種錯誤更正碼來更正錯誤。例如,編解碼器10可切換成第一錯誤更正碼用於第一記憶體裝置12a,並於下一次切換成第二錯誤更正碼用於第二記憶體裝置12b。編解碼器10可以是控制器1的一部分,或者與控制器1分開。控制器1或編解碼器10更可受電腦14的控制。本實施例之記憶體裝置12a-12n可為易錯(error-prone)的記憶體裝置,例如快閃記憶體,其在一般操作下必須仰賴錯誤更正碼來更正所產生的錯誤位元。
在本實施例中,編解碼器10主要包括編碼器(encoder)100及/或解碼器(decoder)102。換句話說,編解碼器10可包括編碼器100和解碼器102,也可只包括其中之一。
第一B圖方塊圖顯示第一A圖的另一種實施例之用於記憶體裝置12之多重錯誤更正碼的可配置編解碼器10。在本實施例中,記憶體裝置12包含非揮發性記憶體單元陣列,其分割成多個區塊(block),每一區塊又包含多頁(page)。編解碼器10可使用不同的錯誤更正碼來分別更正所對應頁(或區塊)的錯誤。
第二A圖顯示本發明第一實施例之多重錯誤更正碼的可配置編碼系統20之功能方塊圖,其適用於記憶體裝置,例如非揮發性記憶體(如快閃記憶體)22a-22n。第二B圖顯示第一實施例之用於記憶體裝置之多重錯誤更正碼的可配置編碼方法之流程圖。
在本實施例中,編碼系統20包括一錯誤更正碼(ECC)編解碼器200,其可經配置用以對不同的非揮發性記憶體22a-22n進行不同的錯誤更正。
編碼系統20更包括多個無誤(error-free)之儲存裝置SD1-SDn,用以分別儲存不同錯誤更正碼的參數,因而可提供無誤的參數給ECC編解碼器200。在一實施例中,每一個無誤之儲存裝置SD1-SDn可以是靜態隨機存取記憶體(SRAM)或唯讀記憶體(ROM)。儲存裝置SD1-SDn中所儲存的參數係用於ECC編解碼器200的初始化或其組態(configuring status)。本說明書中所述之無誤儲存裝置SD1-SDn,其錯誤率遠小於ECC編解碼器200的錯誤率。換句話說,在實際的應用中,儲存裝置SD1-SDn的錯誤機率是可被忽略的。
於步驟201,儲存參數於儲存裝置SD1-SDn中。例如,編碼系統20在出廠前,即先儲存參數於儲存裝置(如唯讀記憶體)SD1-SDn中;或者,可在使用者端藉由電腦14(第一A圖)將參數儲存至儲存裝置SD1-SDn(如靜態隨機存取記憶體)中。接著,於步驟202,使用者選出其中一個可配置錯誤更正碼。之後,於步驟203a-203n中,從相應之儲存裝置(SD1,SD2...或SDn)中,將所選到之參數,例如初始化所需之錯誤更正碼,下載到ECC編解碼器200。於完成初始化之後,於步驟204,ECC編解碼器200開始對相應之非揮發性記憶體(22a,22b...或22n)或非揮發性記憶體(22a,22b...或22n)的相應頁(或區塊)的資料進行編碼及/或解碼。舉例來說,如果選擇了第二錯誤更正碼,則從第二儲存裝置SD2下載參數,而ECC編解碼器200即可開始對第二非揮發性記憶體22b進行編碼及/或解碼。於另一個例子中,若選擇了其中一個錯誤更正碼,則從相應之儲存裝置(SD1,SD2...或SDn)下載參數,而ECC編解碼器200即可對相應之非揮發性記憶體(22a,22b...或22n)的至少一頁(或區塊)之資料進行編碼及/或解碼。
根據上述第一實施例,ECC編解碼器200的錯誤更正碼可藉由將新的參數取代先前的參數而輕易地進行配置或改變,其中新的參數可從儲存裝
置SD1-SDn下載。藉此,ECC編解碼器200本身即無須儲存大量的參數。
第二C圖方塊圖顯示第二A圖的另一種實施例,其為可用於記憶體裝置之多重錯誤更正碼的可配置編碼系統20B。第二D圖顯示第二C圖實施例之用於記憶體裝置之多重錯誤更正碼的可配置編碼方法之流程圖。
本實施例的編碼系統20B類似於編碼系統20,不同的是,僅使用一個無誤儲存裝置SD來儲存不同錯誤更正碼的參數。於步驟201B,將多重錯誤更正碼的參數儲存於儲存裝置SD。例如,不同錯誤更正碼的參數係對應至儲存裝置SD上的不同位址。接著,於步驟202B,選擇其中一個可配置錯誤更正碼。於步驟203Ba-203Bn,初始化所需的參數可藉由定址方法自儲存裝置SD下載。完成初始化後,於步驟204B,ECC編解碼器200開始對相應之非揮發性記憶體(22a,22b...或22n)或非揮發性記憶體(22a,22b...或22n)的相應頁(或區塊)的資料進行編碼及/或解碼。
第三A圖顯示本發明第二實施例之多重錯誤更正碼的可配置編碼系統30之功能方塊圖,其適用於記憶體裝置,例如非揮發性記憶體(如快閃記憶體)22a-22n。第三B圖顯示第二實施例之用於記憶體裝置之多重錯誤更正碼的可配置編碼方法之流程圖。
在本實施例中,編碼系統30包括第一ECC編解碼器300A,其可經配置用以對不同的非揮發性記憶體22a-22n進行不同的錯誤更正。編碼系統30更包括第二(或輔助)ECC編解碼器300B,其可從易錯(error-prone)的外部記憶體裝置(如非揮發性記憶體)下載第一ECC編解碼器300A初始化所需的參數。其中,儲存參數之非揮發性記憶體可以是前述非揮發性記憶體22a-22n的其中一個,或者是其他的非揮發性記憶體。
值得注意的是,第二ECC編解碼器300B可無須進行初始化,即能
更正所下載參數的錯誤。舉例來說,第二ECC編解碼器300B具有內建之參數,因而能夠進行錯誤更正。接著,第二ECC編解碼器300B即將已更正或無誤的參數傳送給第一ECC編解碼器300A。
於步驟301,將參數事先儲存(或更新)於一或多個(易錯的)非揮發性記憶體(22a,22b...或22n)中。隨後,於步驟302,使用者從非揮發性記憶體下載所儲存之相應參數至第二ECC編解碼器300B。接著,於步驟303,第二ECC編解碼器300B對所下載的參數進行錯誤更正。接著於步驟304中,將已更正的參數傳送至第一ECC編解碼器300A以利相關的初始化。於完成初始化後,於步驟305,第一ECC編解碼器300A開始對相應之非揮發性記憶體(22a,22b...或22n)資料進行編碼及/或解碼。舉例來說,如果下載之參數係相應於第二錯誤更正碼,則第一ECC編解碼器300A即可開始對第二非揮發性記憶體22b進行編碼及/或解碼。
第二實施例具有第一實施例的優點,亦即,無須儲存大量的參數。相較於第一實施例,由於各種錯誤更正碼的參數係儲存於非揮發性記憶體,例如非揮發性記憶體的備用儲存空間,因此本實施例對於參數的儲存成本遠小於無誤儲存裝置的儲存成本。此外,第二實施例具有兩個ECC編解碼器300A、300B可資使用。例如,第一ECC編解碼器300A可作為低密度同位元檢查碼(low-density parity-check,LDPC)的編解碼器,而第二ECC編解碼器300B可作為BCH(其係由Bose,Ray-Chaudhuri及Hocquenghem所發明)的編解碼器。
第四A圖顯示本發明第三實施例之多重錯誤更正碼的可配置編碼系統40之功能方塊圖,其適用於記憶體裝置,例如非揮發性記憶體(如快閃記憶體)22a-22n。第四B圖顯示第三實施例之用於記憶體裝置之多重錯誤更正碼的
可配置編碼方法之流程圖。
在本實施例中,編碼系統40包括ECC編解碼器400A,其可經配置用以對不同的非揮發性記憶體22a-22n進行不同的錯誤更正。編碼系統40更包括一儲存裝置400B,如靜態隨機存取記憶體(SRAM)或唯讀記憶體(ROM),用以儲存(無誤的)固定參數。根據固定參數,ECC編解碼器400A可從易錯(error-prone)的外部記憶體裝置(如非揮發性記憶體)下載並更正初始化所需之參數。值得注意的是,ECC編解碼器400A可使用固定參數以更正所下載參數的錯誤。其中,儲存參數之非揮發性記憶體可以是前述非揮發性記憶體22a-22n的其中一個,或者是其他的非揮發性記憶體。
於步驟401,將參數事先儲存(或更新)於一或多個(易錯的)非揮發性記憶體(22a,22b,...,22n)中。接著,於步驟402,藉由固定參數來初始化ECC編解碼器400A。之後,使用者從非揮發性記憶體下載相應之參數至ECC編解碼器400A(步驟403)。於步驟404,ECC編解碼器400A根據固定參數對下載的參數進行錯誤更正。ECC編解碼器400A根據已更正參數完成初始化之後,於步驟405,ECC編解碼器400A開始對相應之非揮發性記憶體(22a,22b...或22n)資料進行編碼及/或解碼。舉例來說,如果下載之參數係相應於第二錯誤更正碼,則ECC編解碼器400A即可開始對第二非揮發性記憶體22b進行編碼及/或解碼。
第三實施例具有第一實施例的優點,亦即,無須儲存大量的參數。此外,第三實施例也具有第二實施例的優點,亦即,儲存參數至非揮發性記憶體的成本遠小於儲存參數至無誤儲存裝置的成本。
於一實施例中,選擇低密度同位元檢查碼(LDPC)用以對相應非揮發性記憶體的資料進行編解碼。具體來說,使用產生矩陣(generating matrix)對
資料進行編碼,且使用同位元檢查碼矩陣(parity check matrix)對接收信號進行解碼。在硬體實作上,用以初始化編碼器之產生矩陣所需要的參數相當大;同樣地,用以初始化解碼器之同位元檢查碼矩陣所需要的參數也相當大。為了支援多重錯誤更正碼,系統必須對每一種LDPC儲存不同的矩陣。根據上述第二和第三實施例,可從非揮發性記憶體下載這些矩陣,因而使系統在設計上更具彈性,且減少編碼系統之成本。
以上所述僅為本發明之較佳實施例而已,並非用以限定本發明之申請專利範圍;凡其它未脫離發明所揭示之精神下所完成之等效改變或修飾,均應包含在下述之申請專利範圍內。
1‧‧‧控制器
10‧‧‧編解碼器
100‧‧‧編碼器
102‧‧‧解碼器
12a-12n‧‧‧記憶體裝置
14‧‧‧電腦
Claims (20)
- 一種多重錯誤更正碼的可配置編碼系統,包含:一錯誤更正碼(ECC)編解碼器,係選擇地使用不同參數以進行不同的錯誤更正;及一參數提供裝置,其預先提供多個不同的ECC初始化參數,分別對應至不同種類的錯誤更正碼,選擇該些ECC初始化參數的其中之一以提供一選擇參數給該ECC編解碼器,以初始化該ECC編解碼器;其中,用以初始化該ECC編解碼器的該參數係為無誤(error-free)參數。
- 如申請專利範圍第1項所述多重錯誤更正碼的可配置編碼系統,其中該ECC編解碼器包含一編碼器、一解碼器或其組合。
- 如申請專利範圍第1項所述多重錯誤更正碼的可配置編碼系統,其中該ECC編解碼器對以下之一進行錯誤更正:非揮發性記憶體至少一頁之資料、非揮發性記憶體至少一區塊的資料、非揮發性記憶體之資料或上述之組合。
- 如申請專利範圍第3項所述多重錯誤更正碼的可配置編碼系統,其中該非揮發性記憶體為一快閃記憶體。
- 如申請專利範圍第1項所述多重錯誤更正碼的可配置編碼系統,其中該參數提供裝置包含:至少一無誤儲存裝置,用以分別儲存該無誤參數,於進行錯誤更正之前,該選擇參數從該儲存裝置下載到該ECC編解碼器。
- 如申請專利範圍第5項所述多重錯誤更正碼的可配置編碼系統,其中該儲存裝置為一靜態隨機存取記憶體(SRAM)或一唯讀記憶體(ROM)。
- 如申請專利範圍第1項所述多重錯誤更正碼的可配置編碼系統,其中 該參數提供裝置包含:一外部記憶體裝置,用以儲存該不同參數;及一輔助編解碼器,用以從該外部記憶體裝置中選擇並下載該儲存參數其中之一;其中,該輔助編解碼器根據一內建參數以更正該下載參數,因而產生該無誤參數以提供給該ECC編解碼器。
- 如申請專利範圍第7項所述多重錯誤更正碼的可配置編碼系統,其中該外部記憶體裝置係為一非揮發性記憶體。
- 如申請專利範圍第1項所述多重錯誤更正碼的可配置編碼系統,其中該參數提供裝置包含:一無誤儲存裝置,用以儲存一無誤固定參數,該固定參數被下載至該ECC編解碼器,用以對其進行初始化;及一外部記憶體裝置,用以儲存該不同參數;其中,該ECC編解碼器從該外部記憶體裝置中選擇並下載該儲存參數其中之一,並根據該固定參數以更正該下載參數,因而產生該無誤參數。
- 如申請專利範圍第9項所述多重錯誤更正碼的可配置編碼系統,其中該儲存裝置為一靜態隨機存取記憶體(SRAM)或一唯讀記憶體(ROM),且該外部記憶體裝置為一非揮發性記憶體。
- 一種多重錯誤更正碼的可配置編碼方法,包含:預先儲存複數個不同之ECC初始化參數,分別對應至不同種類的錯誤更正碼;選擇該些ECC初始化參數的其中之一以提供一選擇參數至一錯誤更正碼(ECC)編解碼器,以初始化該ECC編解碼器;及根據該選擇參數以選擇地執行錯誤更正; 其中,用以初始化該ECC編解碼器的該參數係為無誤(error-free)參數。
- 如申請專利範圍第11項所述多重錯誤更正碼的可配置編碼方法,其中該ECC編解碼器執行編碼、解碼、或其組合。
- 如申請專利範圍第11項所述多重錯誤更正碼的可配置編碼方法,係對以下之一進行錯誤更正:非揮發性記憶體至少一頁之資料、非揮發性記憶體至少一區塊的資料、非揮發性記憶體之資料或上述之組合。
- 如申請專利範圍第13項所述多重錯誤更正碼的可配置編碼方法,其中該非揮發性記憶體為一快閃記憶體。
- 如申請專利範圍第11項所述多重錯誤更正碼的可配置編碼方法,其中該不同參數係儲存於至少一無誤儲存裝置中,於進行該錯誤更正之前,該選擇參數從該儲存裝置下載到該ECC編解碼器。
- 如申請專利範圍第15項所述多重錯誤更正碼的可配置編碼方法,其中該儲存裝置為一靜態隨機存取記憶體(SRAM)或一唯讀記憶體(ROM)。
- 如申請專利範圍第11項所述多重錯誤更正碼的可配置編碼方法,其中該不同參數儲存於一外部記憶體裝置,且一輔助編解碼器從該外部記憶體裝置中選擇並下載該儲存參數其中之一;其中,該輔助編解碼器根據一內建參數以更正該下載參數,因而產生該無誤參數以提供給該ECC編解碼器。
- 如申請專利範圍第17項所述多重錯誤更正碼的可配置編碼方法,其中該外部記憶體裝置為一非揮發性記憶體。
- 如申請專利範圍第11項所述多重錯誤更正碼的可配置編碼方法,其中該不同參數儲存於一外部記憶體裝置,且一無誤儲存裝置儲存一無誤固定參 數,該固定參數被下載至該ECC編解碼器,用以對其進行初始化;其中,該ECC編解碼器從該外部記憶體裝置中選擇並下載該儲存參數其中之一,並根據該固定參數以更正該下載參數,因而產生該無誤參數。
- 如申請專利範圍第19項所述多重錯誤更正碼的可配置編碼方法,其中該儲存裝置為一靜態隨機存取記憶體(SRAM)或一唯讀記憶體(ROM),且該外部記憶體裝置為一非揮發性記憶體。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/781,744 US8762813B2 (en) | 2010-05-17 | 2010-05-17 | Configurable coding system and method of multiple ECCS |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201142860A TW201142860A (en) | 2011-12-01 |
TWI445009B true TWI445009B (zh) | 2014-07-11 |
Family
ID=44912800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099121756A TWI445009B (zh) | 2010-05-17 | 2010-07-01 | 多重錯誤更正碼的可配置編碼系統及方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8762813B2 (zh) |
CN (1) | CN102298969B (zh) |
TW (1) | TWI445009B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011159805A2 (en) | 2010-06-15 | 2011-12-22 | Fusion-Io, Inc. | Apparatus, system, and method for providing error correction |
US8854236B2 (en) | 2012-05-18 | 2014-10-07 | Micron Technology, Inc. | Methods and apparatuses for low-power multi-level encoded signals |
EP2856471A4 (en) * | 2012-05-31 | 2015-11-18 | Hewlett Packard Development Co | LOCAL ERROR DETECTION AND GLOBAL ERROR CORRECTION |
KR101944793B1 (ko) * | 2012-09-04 | 2019-02-08 | 삼성전자주식회사 | 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법 |
US8972826B2 (en) * | 2012-10-24 | 2015-03-03 | Western Digital Technologies, Inc. | Adaptive error correction codes for data storage systems |
CN104810056A (zh) * | 2015-03-05 | 2015-07-29 | 华南理工大学 | 一种基于自适应ldpc码的nand闪存差错控制器 |
US9922686B2 (en) | 2016-05-19 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for performing intra-module databus inversion operations |
KR102479212B1 (ko) | 2016-08-17 | 2022-12-20 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
CN108255633B (zh) * | 2016-12-28 | 2021-07-30 | 旺宏电子股份有限公司 | 存储控制方法、存储装置 |
US10146719B2 (en) | 2017-03-24 | 2018-12-04 | Micron Technology, Inc. | Semiconductor layered device with data bus |
CN108053860A (zh) * | 2018-01-12 | 2018-05-18 | 江苏华存电子科技有限公司 | 一种编译码系统使用多种错误纠正码组合的方法 |
US10664432B2 (en) | 2018-05-23 | 2020-05-26 | Micron Technology, Inc. | Semiconductor layered device with data bus inversion |
US10964702B2 (en) | 2018-10-17 | 2021-03-30 | Micron Technology, Inc. | Semiconductor device with first-in-first-out circuit |
US11990199B2 (en) * | 2021-01-21 | 2024-05-21 | Micron Technology, Inc. | Centralized error correction circuit |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428627A (en) * | 1992-11-10 | 1995-06-27 | Qlogic Corporation | Method and apparatus for initializing an ECC circuit |
JP3937214B2 (ja) * | 1999-09-17 | 2007-06-27 | 株式会社ルネサステクノロジ | エラー訂正回数を記録する記憶装置 |
US7206891B2 (en) * | 2002-09-26 | 2007-04-17 | Lsi Logic Corporation | Multi-port memory controller having independent ECC encoders |
US7162684B2 (en) * | 2003-01-27 | 2007-01-09 | Texas Instruments Incorporated | Efficient encoder for low-density-parity-check codes |
US7065688B1 (en) * | 2003-02-19 | 2006-06-20 | Advanced Micro Devices, Inc. | Simultaneous multiprocessor memory testing and initialization |
US8065598B1 (en) * | 2007-02-08 | 2011-11-22 | Marvell International Ltd. | Low latency programmable encoder with outer systematic code and low-density parity-check code |
US8055982B2 (en) * | 2007-02-21 | 2011-11-08 | Sigmatel, Inc. | Error correction system and method |
CN101281788A (zh) * | 2007-04-06 | 2008-10-08 | 群联电子股份有限公司 | 闪存系统及其控制方法 |
US8356137B2 (en) * | 2010-02-26 | 2013-01-15 | Apple Inc. | Data storage scheme for non-volatile memories based on data priority |
-
2010
- 2010-05-17 US US12/781,744 patent/US8762813B2/en active Active
- 2010-07-01 TW TW099121756A patent/TWI445009B/zh active
-
2011
- 2011-05-10 CN CN201110120302.9A patent/CN102298969B/zh active Active
-
2014
- 2014-04-16 US US14/254,530 patent/US20140229795A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN102298969A (zh) | 2011-12-28 |
US20110283164A1 (en) | 2011-11-17 |
US8762813B2 (en) | 2014-06-24 |
CN102298969B (zh) | 2015-05-13 |
TW201142860A (en) | 2011-12-01 |
US20140229795A1 (en) | 2014-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI445009B (zh) | 多重錯誤更正碼的可配置編碼系統及方法 | |
US8769374B2 (en) | Multi-write endurance and error control coding of non-volatile memories | |
US9673840B2 (en) | Turbo product codes for NAND flash | |
US10707902B2 (en) | Permutation network designing method, and permutation circuit of QC-LDPC decoder | |
TWI539758B (zh) | 藉由癥狀表來解碼渦輪乘積碼之系統及方法 | |
WO2019136976A1 (zh) | 一种编译码系统使用多种错误纠正码组合的方法 | |
JP6975047B2 (ja) | ライトワンスメモリコードのエラー訂正コード管理 | |
JP6046403B2 (ja) | 誤り訂正符号の符号化方法及び復号方法 | |
US10289348B2 (en) | Tapered variable node memory | |
US10700708B2 (en) | Permutation network designing method, and permutation circuit of QC-LDPC decoder | |
CN112346903B (zh) | 用于执行内建式自我测试的独立磁盘冗余数组译码系统 | |
CN110971240B (zh) | 解码器设计方法与存储控制器 | |
KR20210001927A (ko) | 국부성을 사용한 일반화된 연접 에러 정정 코딩 방법 | |
CN109714062A (zh) | 执行迭代解码的解码器和使用该解码器的存储设备 | |
US20160248447A1 (en) | Scheme to avoid miscorrection for turbo product codes | |
US20190294497A1 (en) | Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same | |
US9906241B2 (en) | Apparatus and method for turbo product codes | |
JP2005011386A (ja) | 誤り訂正装置 | |
US20150067453A1 (en) | Memory controller, storage device and memory control method | |
KR20170067656A (ko) | Nand 플래시용 터보 프로덕트 코드 | |
TW201543824A (zh) | 低密度奇偶校驗碼之解碼器及其解碼方法 |