TWI631570B - 錯誤檢查糾正解碼方法與裝置 - Google Patents
錯誤檢查糾正解碼方法與裝置 Download PDFInfo
- Publication number
- TWI631570B TWI631570B TW106130144A TW106130144A TWI631570B TW I631570 B TWI631570 B TW I631570B TW 106130144 A TW106130144 A TW 106130144A TW 106130144 A TW106130144 A TW 106130144A TW I631570 B TWI631570 B TW I631570B
- Authority
- TW
- Taiwan
- Prior art keywords
- codeword
- code word
- bit
- decoding
- information
- Prior art date
Links
Classifications
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- 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/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
- H03M13/3715—Adaptation to the number of estimated errors or to the channel state
-
- 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/373—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
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)
- Error Detection And Correction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一種錯誤檢查糾正(ECC)解碼方法與裝置。解碼電路使用(或未使用)參考資訊對碼字進行ECC解碼,其中當解碼電路對第一碼字進行解碼失敗時,解碼電路對第二碼字進行ECC解碼而產生經解碼資料。解碼電路檢查第二碼字的每一碼字位元至經解碼資料的對應位元是否發生變化。依照發生變化的對應位元的位元位置,解碼電路對應將該第一碼字改為經修改碼字,以及/或者對應將參考資訊改為經修改資訊。解碼電路使用(或未使用)經修改資訊對經修改碼字(或對第一碼字)再一次進行ECC解碼。
Description
本發明是有關於一種解碼技術,且特別是有關於一種錯誤檢查糾正解碼方法與裝置。
在一般情況下,快閃記憶體可能有損壞的位元胞(bit cell)或損壞的位元線。在這些損壞的位元胞中,無論被寫入的資料是什麼,損壞的位元胞都將輸出資料「1」。在這種情況下,被輸入到低密度同位檢查(Low Density Parity Check,LDPC)解碼器的資訊可能具有錯誤值。例如,具有可靠性資訊為「強可靠」的碼字位元值0(或稱為強0,strong 0)可能變為具有可靠性資訊為「強可靠」的碼字位元值1(或稱為強1,strong 1)。所述可靠性資訊又可稱為權重。錯誤值會使LDPC解碼器的解碼能力下降。
如果損壞的位元/位元線的位置為事先已知,則可以將這些位置標記抹除(erasure),以防止誤導LDPC引擎。但是,此方法需要大量的儲存空間來記錄這些損壞的位元/位元線位置。
本發明提供一種錯誤檢查糾正(Error Checking and Correcting,以下稱ECC)解碼方法與ECC解碼裝置,以提高解碼能力。
本發明的實施例提供一種ECC解碼方法。所述ECC解碼方法包括下述步驟。由緩衝電路暫存非依電性記憶體所輸出的至少一碼字。由解碼電路對所述至少一碼字進行ECC解碼,或是使用參考資訊對所述至少一碼字進行ECC解碼,其中當解碼電路對所述至少一碼字的第一碼字進行ECC解碼的結果為失敗時,解碼電路對所述至少一碼字的第二碼字進行ECC解碼而產生一經解碼資料。由解碼電路檢查該第二碼字的每一碼字位元至該經解碼資料的一對應位元是否發生變化。依照發生變化的該對應位元的位元位置,由解碼電路對應改變在該第一碼字中位於該位元位置的位元值而將該第一碼字改為經修改碼字,或者對應改變在該參考資訊中位於該位元位置的參考值而將該參考資訊改為經修改資訊。由解碼電路對該經修改碼字再一次進行ECC解碼,或是使用該經修改資訊對該第一碼字再一次進行ECC解碼,或是使用該經修改資訊對該經修改碼字再一次進行ECC解碼。
本發明的實施例提供一種ECC解碼裝置。所述ECC解碼裝置包括緩衝電路以及解碼電路。緩衝電路暫存非依電性記憶體所輸出的至少一碼字。解碼電路耦接至該緩衝電路。解碼電路可以對所述至少一碼字進行ECC解碼,或是使用參考資訊對所述至少一碼字進行ECC解碼,其中當解碼電路對所述至少一碼字的第一碼字進行ECC解碼的結果為失敗時,解碼電路對所述至少一碼字的第二碼字進行ECC解碼而產生經解碼資料。解碼電路檢查該第二碼字的每一碼字位元至該經解碼資料的一對應位元是否發生變化。依照發生變化的該對應位元的位元位置,解碼電路對應改變在該第一碼字中位於該位元位置的位元值而將該第一碼字改為經修改碼字,或者對應改變在該參考資訊中位於該位元位置的參考值而將該參考資訊改為經修改資訊。解碼電路對該經修改碼字再一次進行ECC解碼,或是使用該經修改資訊對該第一碼字再一次進行ECC解碼,或是使用該經修改資訊對該經修改碼字再一次進行ECC解碼。
基於上述,本發明諸實施例所述ECC解碼方法與ECC解碼裝置從被成功解碼的碼字擷取特定資訊,然後將此特定資訊回饋給解碼失敗的碼字並再一次進行解碼。在再一次進行解碼後,原本解碼失敗的碼字往往因為此特定資訊而得以被成功解碼。因此,本發明諸實施例所述ECC解碼方法與ECC解碼裝置可以提高解碼能力。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
圖1是依照本發明一實施例所繪示一種非依電性記憶體(non-volatile memory)裝置20的電路方塊示意圖。依照設計需求,非依電性記憶體裝置20可以是隨身碟、固態硬碟(solid state disc, SSD)或是其他儲存裝置。非依電性記憶體裝置20可以耦接至主機(host)10。此主機10可以是電腦、手持式電話、多媒體播放器、相機或是其他電子裝置。當主機10發出一個讀取命令(read command)給非依電性記憶體裝置20時,非依電性記憶體裝置20可以依據此讀取命令的定址來回傳對應資料給主機10。
於圖1所示實施例中,非依電性記憶體裝置20包括非依電性記憶體21與錯誤檢查糾正(Error Checking and Correcting,以下稱ECC)解碼裝置100。依照設計需求,非依電性記憶體21可以是反及快閃記憶體(NAND flash memory)或是其他非依電性儲存電路/元件。當主機10發出一個讀取命令時,非依電性記憶體21依據該讀取命令的定址來輸出對應的碼字(codeword)101給ECC解碼裝置100,然後ECC解碼裝置100將此碼字101進行解碼,以便將對應的經解碼資料102回傳給主機10。舉例來說,在一些實施例中,ECC解碼裝置100可以執行低密度同位檢查(Low Density Parity Check,以下稱LDPC)碼演算法或是其他ECC演算法,以便將碼字101進行解碼來產生經解碼資料102。
非依電性記憶體21可以依據讀取命令的一個(或一組)讀取電壓參數來設定至少一讀取電壓(或稱門檻電壓),以及依據該讀取命令的位址來讀取一組對應資料電壓。依照所述至少一讀取電壓,非依電性記憶體21可以將該組對應資料電壓轉換為對應的碼字101。依照設計需求,非依電性記憶體21可以是單層記憶胞(Single Level Cell, SLC)快閃記憶體、多層記憶胞(Multi-Level Cell, MLC)快閃記憶體、三層記憶胞(Triple Level Cell, TLC)快閃記憶體、四層記憶胞(Quadruple Level Cell,QLC)快閃記憶體或其他類型快閃記憶體。
以MLC快閃記憶體為例,一個記憶胞具有高頁(high page)與低頁(low page),因此一個記憶胞可以儲存2個位元的資訊。同一個記憶胞中的高頁與低頁又被稱為「成對頁(Paired pages)」。低頁有一個讀取電壓(或稱門檻電壓),高頁有兩個讀取電壓。非依電性記憶體21可以依據ECC解碼裝置100的命令來設定高頁讀取電壓VtU1、高頁讀取電壓VtU2與低頁讀取電壓VtL。依照這些讀取電壓VtU1、VtU2與VtL,非依電性記憶體21可以將對應資料電壓組轉換為對應的碼字101。
不失一般性(without loss of generality),相較於高頁而言,低頁可以具有更高的抗差錯能力(capability of error resistance)。對於同一個成對頁而言,在高頁的碼字不能被正確解碼的情況下,在低頁的碼字可能可以被正確解碼。以下諸實施例將使用被正確解碼的碼字的運行時資訊(the information in the runtime)(亦即特定資訊)作為參考,然後將此特定資訊回饋給解碼失敗的碼字並再一次進行解碼,以提高ECC的能力。
以下實施例將以LDPC解碼方法作為說明範例。在LDPC解碼過程中,一個碼字會伴隨一組「可靠性資訊」(或稱權重),用來描述碼字的每一個位元值的可信度。LDPC解碼方法為習知技術,故不在此贅述。其他ECC解碼方法亦可能具有「可靠性資訊」,故亦可以參照以下諸實施例的說明而將本發明應用於其他ECC解碼方法。為了方便說明,在此將具有可靠性資訊為「強可靠」的碼字位元值0稱為「強0(strong 0)」,將具有可靠性資訊為「弱可靠」的碼字位元值0稱為「弱0(weak 0)」,將具有可靠性資訊為「弱可靠」的碼字位元值1稱為「弱1(weak 1)」,將具有可靠性資訊為「強可靠」的碼字位元值1稱為「強1(strong 1)」。
如果在低頁(或高頁)中一個位元記憶胞的位元值從強0被成功解碼至1(強1或弱1),或者從強1被成功解碼到0(強0或弱0),則這個位元記憶胞可能是損壞的胞,或者這個位元記憶胞的位元線是損壞的位元線。因此,從被成功解碼的碼字可以擷取出特定資訊,而此特定資訊可以指出此成功解碼的碼字的某一條(或某些條)位元線可能是損壞的位元線。然後將此特定資訊回饋給解碼失敗的碼字並再一次進行解碼。依照設計需求,所述「回饋」的方式可以包括弱化權重(Weaken the weight)、標記擦除(Mark erasure)、翻轉資料(Flip Data)以及/或是其他方式或手段。在再一次進行解碼後,原本解碼失敗的碼字往往因為此特定資訊而得以被成功解碼。
圖1所示ECC解碼裝置100包括緩衝電路110以及解碼電路120。緩衝電路110可以暫存非依電性記憶體21所輸出的碼字101。解碼電路120耦接至緩衝電路110。在一些實施例中錯誤檢查糾正(ECC)解碼方法可以沒有「可靠性資訊」,因而解碼電路120可以對緩衝電路110所提供的碼字進行ECC解碼(例如進行硬解碼,hard decoding)。在另一些實施例中ECC解碼方法可能具有「可靠性資訊」,因此解碼電路120可以使用此參考資訊對緩衝電路110所提供的碼字進行ECC解碼(例如進行LDPC的軟解碼,soft decoding)。在一實施例中,上述可靠性資訊為軟值(soft value)。為方便說明,以下諸實施例將對曾經ECC解碼失敗的碼字稱為「第一碼字」,而對ECC解碼成功的碼字稱為「第二碼字」。其中,此第一碼字與此第二碼字來自於非依電性記憶體21中的相同位元線。在一些實施例中,此第一碼字與此第二碼字來自於非依電性記憶體21中的相同成對頁的不同層頁。在另一些實施例中,此第一碼字與此第二碼字來自於非依電性記憶體21中的不同成對頁。一旦ECC解碼成功,解碼電路120可以依據碼字產生經解碼資料102,以及將經解碼資料102輸出給主機10。
圖2是依照本發明一實施例所繪示一種錯誤檢查糾正解碼方法的流程示意圖。請參照圖1與圖2。於步驟S205中,ECC解碼裝置100從非依電性記憶體21讀出碼字101(例如第一碼字),並且將此碼字101暫存於緩衝電路110。於步驟S210中,解碼電路120對緩衝電路110所提供的第一碼字進行錯誤檢查糾正(ECC)解碼,或者解碼電路120使用「參考資訊」對緩衝電路110所提供的第一碼字進行ECC解碼。若於步驟S210判定第一碼字解碼成功,則結束第一碼字的解碼。一旦解碼電路120對緩衝電路110所提供的第一碼字進行ECC解碼的結果為失敗,解碼電路120將接著進行步驟S220。
於步驟S220中,ECC解碼裝置100的控制器(例如圖5所示控制器121)會找尋與所述第一碼字相關的其他碼字(相關碼字)。依照設計需求,所述相關碼字可以是與所述第一碼字共用相同位元線的其他碼字。在一些實施例中,此第一碼字與所述相關碼字來自於非依電性記憶體21中的相同成對頁的不同層頁。在另一些實施例中,此第一碼字與所述相關碼字來自於非依電性記憶體21中的不同成對頁。若步驟S220找不到所述第一碼字的相關碼字,則解碼電路120判定所述第一碼字的解碼操作失敗而結束第一碼字的解碼。若步驟S220找到所述第一碼字的相關碼字(以下稱為第二碼字),則解碼電路120進行步驟S225。
於步驟S225中,ECC解碼裝置100從非依電性記憶體21讀出碼字101(例如第二碼字),並且將此碼字101暫存於緩衝電路110。於步驟S230中,解碼電路120對緩衝電路110所提供的第二碼字進行ECC解碼,或者解碼電路120使用「參考資訊」對緩衝電路110所提供的第二碼字進行ECC解碼。當解碼電路120對第二碼字進行ECC解碼的結果為失敗時,解碼電路120將再一次進行步驟S220,以便找尋與所述第一碼字相關的其他相關碼字。一旦解碼電路120對緩衝電路110所提供的第二碼字進行ECC解碼的結果為成功後,解碼電路120可以產生經解碼資料102給主機10,而且解碼電路120將接著進行步驟S235。
於步驟S235中,解碼電路120可以檢查第二碼字的每一碼字位元至經解碼資料的一個對應位元是否發生變化。當第二碼字的每一碼字位元都沒有「發生變化」時,解碼電路120將再一次進行步驟S220,以便找尋與所述第一碼字相關的其他相關碼字。當第二碼字的一個(或多個)碼字位元「發生變化」時,解碼電路120將進行步驟S240。所述「發生變化」的條件可以依照設計需求來決定。舉例來說,在一些實施例中,所述對應位元「發生變化」,是指「此第二碼字的一個碼字位元至此經解碼資料的對應位元發生變化」的狀況。例如,第二碼字的一個位元值為0而經解碼資料的對應位元值為1,或者第二碼字的一個位元值為1而經解碼資料的對應位元值為0。在另一些實施例中,所述對應位元「發生變化」,是指「此第二碼字的一個碼字位元至此經解碼資料的對應位元發生變化,並且此碼字位元的可靠性資訊指出此碼字位元為強可靠」的狀況。例如,第二碼字的一個位元值為強0而經解碼資料的對應位元值為1(強1或弱1),或者第二碼字的一個位元值為強1而經解碼資料的對應位元值為0(強0或弱0)。
於步驟S240中,針對第二碼字中發生上述步驟S235所述的變化的那個(那些)位元,解碼電路120可以標記/記錄那個(那些)位元位置。步驟S240所標記/記錄的位置資訊(特定資訊)可以被回饋給解碼失敗的第一碼字所使用,亦即將所述特定資訊提供給步驟S245使用。也就是說,在第二碼字進行ECC解碼的結果為成功的情況下,解碼電路120可以對原先解碼失敗的第一碼字再一次進行ECC解碼。
於步驟S245中,解碼電路120可以判斷所述第一碼字(原先解碼失敗的碼字)的所有位元位置中,有沒有步驟S240所標記/記錄的位置。若與第一碼字共用相同位元線的其他碼字(例如第二碼字)被成功解碼,則步驟S235至S240可以從被成功解碼的第二碼字擷取特定資訊(發生變化的位元位置)給步驟S245。若步驟S245的判斷結果表示,所述第一碼字(原先解碼失敗的碼字)的所有位元位置都不符合步驟S240所標記/記錄的位置,則解碼電路120將再一次進行步驟S220,以便找尋與所述第一碼字相關的其他相關碼字。若與所述第一碼字相關的其他相關碼字(例如與所述第一碼字共用相同位元線的其他碼字)都沒有所述特定資訊,則所述第一碼字的解碼操作結束。若步驟S245的判斷結果表示,與所述第一碼字共用相同位元線的其他碼字(例如第二碼字)可以提供所述特定資訊(發生變化的位元位置),則解碼電路120將進行步驟S250。
於步驟S250中,依照發生變化的對應位元的位元位置,解碼電路120對應改變在所述第一碼字中位於所標記位元位置(步驟S240所標記的位置)的位元值而將此第一碼字改為經修改碼字,以及/或者對應改變在參考資訊中位於所標記位元位置(步驟S240所標記的位置)的參考值而將此參考資訊改為經修改資訊。完成步驟S250後,解碼電路120接著再一次進行步驟S210。於步驟S210中,解碼電路120對所述經修改碼字再一次進行ECC解碼,或是使用所述經修改資訊對第一碼字再一次進行ECC解碼,或是使用所述經修改資訊對所述經修改碼字再一次進行ECC解碼。
舉例來說,以「翻轉資料(Flip Data)」為例,解碼電路120於步驟S250中可以將在所述第一碼字中位於所標記位元位置(步驟S240所標記的位置)的位元值「0」改為「1」,或將「1」改為「0」,而獲得經修改碼字。解碼電路120於步驟S210中可以對所述經修改碼字再一次進行ECC解碼。換言之,從被成功解碼的第二碼字擷取特定資訊(發生變化的位元位置),然後將此特定資訊回饋給解碼失敗的第一碼字並再一次進行ECC解碼。在再一次進行ECC解碼後,原本解碼失敗的第一碼字往往因為此特定資訊而得以被成功解碼。
以「弱化權重(Weaken the weight)」為例,所述「參考資訊」可以包括可靠性資訊(或稱權重)。當步驟S240的標記資訊指出第二碼字(可被成功解碼的其他碼字)的一個碼字位元至經解碼資料的對應位元發生變化,並且該碼字位元的可靠性資訊指出該碼字位元為「強可靠」時,解碼電路120於步驟S250中可以將該碼字位元的可靠性資訊「強可靠」改變為「弱可靠」,而獲得經修改資訊。於此範例中,所述第一碼字不會被改變,亦即將碼字位元「強1」改變為「弱1」,或將「強0」改變為「弱0」。解碼電路120於步驟S210中可以使用所述經修改資訊對第一碼字再一次進行ECC解碼。換言之,從被成功解碼的第二碼字擷取特定資訊(發生變化的位元位置),然後將此特定資訊回饋給解碼失敗的第一碼字的可靠性資訊(或稱權重)並再一次進行ECC解碼。在再一次進行ECC解碼後,原本解碼失敗的第一碼字往往因為此特定資訊而得以被成功解碼。
以併用「翻轉資料」與「弱化權重」為例,當步驟S240的標記資訊指出第二碼字(可被成功解碼的其他碼字)的一個碼字位元至經解碼資料的對應位元發生變化,並且該碼字位元的可靠性資訊指出該碼字位元為「強可靠」時,解碼電路120於步驟S250中可以將該碼字位元「強1」改變為「弱0」,或將「強0」改變為「弱1」,而獲得經修改碼字與經修改資訊。解碼電路120於步驟S210中可以使用所述經修改資訊對所述經修改碼字再一次進行ECC解碼。換言之,從被成功解碼的第二碼字擷取特定資訊(發生變化的位元位置),然後將此特定資訊回饋給解碼失敗的第一碼字與其可靠性資訊(或稱權重)並再一次進行ECC解碼。在再一次進行ECC解碼後,原本解碼失敗的第一碼字往往因為此特定資訊而得以被成功解碼。
以「標記擦除(Mark erasure)」為例,所述「參考資訊」可以包括可靠性資訊(或稱權重)與擦除資訊。當步驟S240的標記資訊指出第二碼字(可被成功解碼的其他碼字)的一個碼字位元至經解碼資料的對應位元發生變化,並且該碼字位元的可靠性資訊指出碼字位元為「強可靠」時,解碼電路120於步驟S250中可以將該碼字位元的擦除資訊標記為「中性」,而獲得經修改資訊。所述「中性」的擦除資訊用來標記該碼字位元的值「既非邏輯0,亦非邏輯1」。LDPC解碼方法中的「擦除資訊」為習知技術,故不再贅述。解碼電路120於步驟S210中可以使用所述經修改資訊對第一碼字再一次進行ECC解碼。換言之,從被成功解碼的第二碼字擷取特定資訊(發生變化的位元位置),然後將此特定資訊回饋給解碼失敗的第一碼字的擦除資訊並再一次進行ECC解碼。在再一次進行ECC解碼後,原本解碼失敗的第一碼字往往因為此特定資訊而得以被成功解碼。
圖3是依照本發明另一實施例所繪示一種錯誤檢查糾正解碼方法的流程示意圖。圖3所示步驟S205、步驟S210、步驟S220、步驟S225、步驟S230、步驟S235、步驟S240與步驟S245可以參照圖2的相關說明,故不再贅述。於圖3所示實施例中,步驟S210包括步驟S310與步驟S320,而步驟S230包括步驟S330與步驟S340。緩衝電路110用以暫存非依電性記憶體21所輸出的碼字101(例如第一碼字與第二碼字)。於步驟S310中,解碼電路120對緩衝電路110所提供的第一碼字進行硬解碼。於步驟S330中,解碼電路120對緩衝電路110所提供的第二碼字進行硬解碼。所述硬解碼為習知技術,故不再贅述。於步驟S320中,解碼電路120可以判斷第一碼字的硬解碼是否失敗。若步驟S320判定第一碼字的硬解碼的結果為成功,則結束第一碼字的解碼。若步驟S320判定第一碼字的硬解碼的結果為失敗,則解碼電路120將接著進行步驟S220。若步驟S340判定第二碼字的硬解碼的結果為成功,則解碼電路120可以產生經解碼資料102給主機10,而且解碼電路120將接著進行步驟S235與步驟S240。步驟S240所標記/記錄的位置資訊(特定資訊)可以被回饋給解碼失敗的第一碼字所使用。也就是說,在第二碼字進行ECC解碼的結果為成功的情況下,步驟S210可以對原先解碼失敗的第一碼字再一次進行硬解碼。
於步驟S245中,解碼電路120可以判斷第一碼字(硬解碼失敗的碼字)的所有位元位置中,有沒有步驟S240所標記/記錄的位置。若步驟S245的判斷結果表示,所述第一碼字(硬解碼失敗的碼字)的所有位元位置都不符合步驟S240所標記/記錄的位置,則解碼電路120將再一次進行步驟S220,以便找尋與所述第一碼字相關的其他相關碼字。若與所述第一碼字相關的其他相關碼字(例如與所述第一碼字共用相同位元線的其他碼字)都沒有所述特定資訊,則所述第一碼字的解碼操作結束。若步驟S245的判斷結果表示,與所述第一碼字共用相同位元線的其他碼字(第二碼字,即硬解碼成功的其他碼字)可以提供所述特定資訊(發生變化的位元位置),則解碼電路120將進行步驟S350。於步驟S350中,依照發生變化的對應位元的位元位置,解碼電路120對應改變在所述第一碼字中位於所標記位元位置(步驟S240所標記的位置)的位元值而將此第一碼字改為經修改碼字。完成步驟S350後,解碼電路120接著再一次進行步驟S310。於步驟S310中,解碼電路120對所述經修改碼字再一次進行硬解碼。
舉例來說,解碼電路120於步驟S350中可以將在所述第一碼字中位於所標記位元位置(步驟S240所標記的位置)的位元值「0」改為「1」,或將「1」改為「0」,而獲得經修改碼字。解碼電路120於步驟S310中可以對所述經修改碼字再一次進行硬解碼。換言之,從被成功解碼的第二碼字擷取特定資訊(發生變化的位元位置),然後將此特定資訊回饋給解碼失敗的第一碼字並再一次進行硬解碼。在再一次進行硬解碼後,原本解碼失敗的第一碼字往往因為此特定資訊而得以被成功解碼。
圖4是依照本發明又一實施例所繪示一種錯誤檢查糾正解碼方法的流程示意圖。圖4所示步驟S205、步驟S210、步驟S220、步驟S225、步驟S230、步驟S235、步驟S240與步驟S245可以參照圖2的相關說明,故不再贅述。於圖4所示實施例中,步驟S210包括步驟S410、步驟S420、步驟S430與步驟S440。步驟230包含步驟S450、步驟S460、步驟S470與步驟S480。圖4所示步驟S410與步驟S420可以參照圖3所示步驟S310與步驟S320的相關說明,圖4所示步驟S450與步驟S460可以參照圖3所示步驟S330與步驟S340的相關說明,故不再贅述。若步驟S420判定第一碼字的硬解碼的結果為成功,則結束第一碼字的解碼。若步驟S420判定第一碼字的硬解碼的結果為失敗,則解碼電路120將接著進行步驟S430。
於步驟S430中,解碼電路120對緩衝電路110所提供的第一碼字進行軟解碼。所述軟解碼可以是習知LDPC解碼演算法或是其他解碼演算法,故不再贅述。若步驟S440判定第一碼字的所述軟解碼的結果為成功,則解碼電路120可以產生經解碼資料102給主機10,而且結束第一碼字的解碼操作。若步驟S440判定第一碼字的軟解碼的結果為失敗,則解碼電路120將接著進行步驟S220。
若步驟S460判定第二碼字的硬解碼的結果為成功,則解碼電路120將接著進行步驟S470。若步驟S460判定第二碼字的硬解碼的結果為失敗,則解碼電路120將接著進行步驟S220。於步驟S470中,解碼電路120對緩衝電路110所提供的碼字(例如第二碼字)進行軟解碼。所述軟解碼可以是習知LDPC解碼演算法或是其他解碼演算法,故不再贅述。若步驟S480判定第二碼字的所述軟解碼的結果為失敗,則解碼電路120將接著進行步驟S220。若步驟S480判定第二碼字的所述軟解碼的結果為成功,則解碼電路120可以產生經解碼資料102給主機10,而且解碼電路120將接著進行步驟S235與步驟S240。步驟S240所標記/記錄的位置資訊(特定資訊)可以被回饋給解碼失敗的第一碼字所使用。也就是說,在第二碼字進行ECC解碼的結果為成功的情況下,步驟S210可以對原先解碼失敗的第一碼字再一次進行硬解碼及/或軟解碼。
於步驟S245中,解碼電路120可以判斷第一碼字(硬解碼失敗及/或軟解碼失敗的碼字)的所有位元位置中,有沒有步驟S240所標記/記錄的位置。若步驟S245的判斷結果表示,所述第一碼字(硬解碼失敗及/或軟解碼失敗的碼字)的所有位元位置都不符合步驟S240所標記/記錄的位置,則解碼電路120將再一次進行步驟S220,以便找尋與所述第一碼字相關的其他相關碼字。若與所述第一碼字相關的其他相關碼字(例如與所述第一碼字共用相同位元線的其他碼字)都沒有所述特定資訊,則所述第一碼字的解碼操作結束。若步驟S245的判斷結果表示,與所述第一碼字共用相同位元線的其他碼字(第二碼字,即硬解碼成功的其他碼字)可以提供所述特定資訊(發生變化的位元位置),則解碼電路120將進行步驟S490。於步驟S490中,依照發生變化的對應位元的位元位置,解碼電路120對應改變在所述第一碼字中位於所標記位元位置(步驟S240所標記的位置)的位元值而將此第一碼字改為經修改碼字,以及/或者對應改變在參考資訊中位於所標記位元位置(步驟S240所標記的位置)的參考值而將此參考資訊改為經修改資訊。圖4所示步驟S490可以參照圖2所示步驟S250的相關說明,故不再贅述。完成步驟S490後,解碼電路120接著再一次進行步驟S430。
於步驟S430中,解碼電路120對所述經修改碼字再一次進行所述軟解碼,或是使用所述經修改資訊對第一碼字再一次進行所述軟解碼,或是使用所述經修改資訊對所述經修改碼字再一次進行所述軟解碼。舉例來說,以「翻轉資料」為例,解碼電路120於步驟S490中可以將在所述第一碼字中位於所標記位元位置(步驟S240所標記的位置)的位元值「強0」改為「強1」,或將「強1」改為「強0」,或將「弱1」改為「弱0」,或將「弱0」改為「弱1」,而獲得經修改碼字。於此範例中,所述第一碼字的可靠性資訊不會被改變。解碼電路120於步驟S430中可以對所述經修改碼字再一次進行所述軟解碼。換言之,從被成功解碼的第二碼字擷取特定資訊(發生變化的位元位置),然後將此特定資訊回饋給解碼失敗的第一碼字並再一次進行所述軟解碼。在再一次進行所述軟解碼後,原本解碼失敗的第一碼字往往因為此特定資訊而得以被成功解碼。
以「弱化權重」為例,所述「參考資訊」可以包括可靠性資訊(或稱權重)。當步驟S240的標記資訊指出第二碼字(可被成功解碼的其他碼字)的一個碼字位元至經解碼資料的對應位元發生變化,並且該碼字位元的可靠性資訊指出該碼字位元為「強可靠」時,解碼電路120於步驟S490中可以將該碼字位元的可靠性資訊「強可靠」改變為「弱可靠」,而獲得經修改資訊。於此範例中,所述第一碼字不會被改變,亦即將碼字位元「強1」改變為「弱1」,或將「強0」改變為「弱0」。解碼電路120於步驟S430中可以使用所述經修改資訊對第一碼字再一次進行所述軟解碼。換言之,從被成功解碼的第二碼字擷取特定資訊(發生變化的位元位置),然後將此特定資訊回饋給解碼失敗的第一碼字的可靠性資訊(或稱權重)並再一次進行所述軟解碼。在再一次進行所述軟解碼後,原本解碼失敗的第一碼字往往因為此特定資訊而得以被成功解碼。
以併用「翻轉資料」與「弱化權重」為例,當步驟S240的標記資訊指出第二碼字(可被成功解碼的其他碼字)的一個碼字位元至經解碼資料的對應位元發生變化,並且該碼字位元的可靠性資訊指出該碼字位元為「強可靠」時,解碼電路120於步驟S490中可以將該碼字位元「強1」改變為「弱0」,或將「強0」改變為「弱1」,而獲得經修改碼字與經修改資訊。解碼電路120於步驟S430中可以使用所述經修改資訊對所述經修改碼字再一次進行所述軟解碼。換言之,從被成功解碼的第二碼字擷取特定資訊(發生變化的位元位置),然後將此特定資訊回饋給解碼失敗的第一碼字與其可靠性資訊(或稱權重)並再一次進行所述軟解碼。在再一次進行所述軟解碼後,原本解碼失敗的第一碼字往往因為此特定資訊而得以被成功解碼。
以「標記擦除」為例,所述「參考資訊」可以包括可靠性資訊(或稱權重)與擦除資訊。當步驟S240的標記資訊指出第二碼字(可被成功解碼的其他碼字)的一個碼字位元至經解碼資料的對應位元發生變化,並且該碼字位元的可靠性資訊指出碼字位元為「強可靠」時,解碼電路120於步驟S490中可以將該碼字位元的擦除資訊標記為「中性」,而獲得經修改資訊。解碼電路120於步驟S430中可以使用所述經修改資訊對第一碼字再一次進行所述軟解碼。換言之,從被成功解碼的第二碼字擷取特定資訊(發生變化的位元位置),然後將此特定資訊回饋給解碼失敗的第一碼字的擦除資訊並再一次進行所述軟解碼。在再一次進行所述軟解碼後,原本解碼失敗的第一碼字往往因為此特定資訊而得以被成功解碼。
圖5是依照本發明一實施例說明圖1所示解碼電路120的電路方塊示意圖。圖5所示解碼電路120包括控制器121、低密度同位檢查(LDPC)解碼器電路122、第一旗標123、第二旗標124、或閘125、第一及閘126、第二及閘127以及輸出緩衝器128。圖5所示第一旗標123、第二旗標124、或閘125、第一及閘126、第二及閘127適用於經解碼資料的多個位元中的一個位元。圖5所示第一旗標123、第二旗標124、或閘125、第一及閘126、第二及閘127的相關說明可以類推至經解碼資料的其他位元,故不再贅述。亦即,假設經解碼資料有8個位元,則圖5所示電路組合(第一旗標123、第二旗標124、或閘125、第一及閘126、第二及閘127視為一個電路組合)亦有8個。
非依電性記憶體21可以依據控制器121的命令來設定一個或多個讀取電壓(或稱門檻電壓)。依照這或這些讀取電壓,非依電性記憶體21可以將對應資料電壓組轉換為對應的碼字101。低密度同位檢查(LDPC)解碼器電路122耦接至控制器121與緩衝電路110。LDPC解碼器電路122可以使用緩衝電路110所提供的參考資訊對緩衝電路110所提供的碼字進行LDPC解碼。於本實施例中,所述參考資訊包括「可靠性資訊」(或稱權重)。在一些實施例中,此可靠性資訊可以是解碼電路120進行軟解碼的過程中所產生,然後解碼電路120將此可靠性資訊存放在緩衝電路110。在另一些實施例中,此可靠性資訊可以是解碼電路120下命令給非依電性記憶體21,而由非依電性記憶體21產生,然後非依電性記憶體21將此可靠性資訊存放在緩衝電路110。
當一個碼字(稱為第二碼字)解碼成功後,LDPC解碼器電路122可以產生經解碼資料。LDPC解碼器電路122可以檢查此第二碼字的一個碼字位元至經解碼資料的對應位元是否發生「變化」。所述「發生變化」的條件可以參照圖1至圖4的相關說明,故不再贅述。舉例來說,當此第二碼字的某一個碼字位元為邏輯1且經解碼資料的對應位元為邏輯0,並且此碼字位元的可靠性資訊指出此碼字位元為「強可靠」時,LDPC解碼器電路122設置(set)第一旗標123,否則重設(reset)第一旗標123。當此碼字位元為邏輯0且經解碼資料的對應位元為邏輯1,並且此碼字位元的可靠性資訊指出此碼字位元為「強可靠」時,LDPC解碼器電路122設置第二旗標124,否則重設第二旗標124。
或閘125的第一輸入端與第二輸入端分別耦接至第一旗標123與第二旗標124。第一及閘126的第一輸入端耦接至或閘125的輸出端。第一及閘126的第二輸入端接收致能信號EN。第二及閘127的非反相輸入端耦接至緩衝電路110,以接收此碼字位元的可靠性資訊W/S。第二及閘127的反相輸入端耦接至第一及閘126的輸出端。第二及閘127的輸出端耦接至LDPC解碼器電路122,以提供此碼字位元的可靠性資訊W/S’。因此,假設致能信號EN為邏輯1,當此碼字位元「強1」轉變至經解碼資料的對應位元「強0」或「弱0」時,或者當此碼字位元「強0」轉變至經解碼資料的對應位元「強1」或「弱1」時,雖然緩衝電路110所提供的可靠性資訊W/S為邏輯1(表示「強可靠」),第二及閘127所輸出的可靠性資訊W/S’為邏輯0,以表示此碼字位元的位元資料為「弱可靠」。因此,圖5所示範例電路可以實現「弱化權重」的機制。LDPC解碼器電路122可以使用可靠性資訊W/S’(經修改資訊)對緩衝電路110所提供的第一碼字再一次進行LDPC解碼。
綜上所述,若與第一碼字(LDPC解碼失敗的碼字)共用相同位元線的其他碼字(第二碼字)被成功解碼,則從被成功解碼的第二碼字可以擷取特定資訊(發生變化的位元位置),然後將此特定資訊回饋給解碼失敗的第一碼字的可靠性資訊(或稱權重)並再一次進行LDPC解碼。在再一次進行LDPC解碼後,原本解碼失敗的第一碼字往往因為此特定資訊而得以被成功解碼。
值得注意的是,在不同的應用情境中,ECC解碼裝置100、緩衝電路110、解碼電路120、控制器121以及/或是LDPC解碼器電路122的相關功能可以利用一般的編程語言(programming languages,例如C或C++)、硬體描述語言(hardware description languages,例如Verilog HDL或VHDL)或其他合適的編程語言來實現為軟體、韌體或硬體。可執行所述相關功能的編程語言可以被佈置為任何已知的計算機可存取媒體(computer-accessible medias),例如磁帶(magnetic tapes)、半導體(semiconductors)記憶體、磁盤(magnetic disks)或光盤(compact disks,例如CD-ROM或DVD-ROM),或者可通過互聯網(Internet)、有線通信(wired communication)、無線通信(wireless communication)或其它通信介質傳送所述編程語言。所述編程語言可以被存放在計算機的可存取媒體中,以便於由計算機的處理器來存取/執行所述軟體(或韌體)的編程碼(programming codes)。對於硬體實現,結合本文實施例所揭示的態樣,利用在一或多個控制器、微控制器、微處理器、特殊應用積體電路(Application-specific integrated circuit, ASIC)、數位訊號處理器(digital signal processor, DSP)、場可程式邏輯閘陣列(Field Programmable Gate Array, FPGA)及/或其他處理單元中的的各種示例性的邏輯、邏輯區塊、模組和電路可以被用於實現或執行本文所述功能。另外,本發明的裝置和方法可以通過硬體和軟體的組合來實現。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機
20‧‧‧非依電性記憶體裝置
21‧‧‧非依電性記憶體
100‧‧‧錯誤檢查糾正(ECC)解碼裝置
101‧‧‧碼字
102‧‧‧經解碼資料
110‧‧‧緩衝電路
120‧‧‧解碼電路
121‧‧‧控制器
122‧‧‧低密度同位檢查(LDPC)解碼器電路
123‧‧‧第一旗標
124‧‧‧第二旗標
125‧‧‧或閘
126‧‧‧第一及閘
127‧‧‧第二及閘
128‧‧‧輸出緩衝器
EN‧‧‧致能信號
S205、S210、S220、S225、S230、S235、S240、S245、S250、S310、S320、S330、S340、S350、S410、S420、S430、S440、S450、S460、S470、S480、S490‧‧‧步驟
W/S、W/S’‧‧‧可靠性資訊
20‧‧‧非依電性記憶體裝置
21‧‧‧非依電性記憶體
100‧‧‧錯誤檢查糾正(ECC)解碼裝置
101‧‧‧碼字
102‧‧‧經解碼資料
110‧‧‧緩衝電路
120‧‧‧解碼電路
121‧‧‧控制器
122‧‧‧低密度同位檢查(LDPC)解碼器電路
123‧‧‧第一旗標
124‧‧‧第二旗標
125‧‧‧或閘
126‧‧‧第一及閘
127‧‧‧第二及閘
128‧‧‧輸出緩衝器
EN‧‧‧致能信號
S205、S210、S220、S225、S230、S235、S240、S245、S250、S310、S320、S330、S340、S350、S410、S420、S430、S440、S450、S460、S470、S480、S490‧‧‧步驟
W/S、W/S’‧‧‧可靠性資訊
圖1是依照本發明一實施例所繪示一種非依電性記憶體(non-volatile memory)裝置的電路方塊示意圖。 圖2是依照本發明一實施例所繪示一種錯誤檢查糾正解碼方法的流程示意圖。 圖3是依照本發明另一實施例所繪示一種錯誤檢查糾正解碼方法的流程示意圖。 圖4是依照本發明又一實施例所繪示一種錯誤檢查糾正解碼方法的流程示意圖。 圖5是依照本發明一實施例說明圖1所示解碼電路的電路方塊示意圖。
Claims (15)
- 一種錯誤檢查糾正解碼方法,包括: 由一緩衝電路暫存一非依電性記憶體所輸出的至少一碼字; 由一解碼電路對所述至少一碼字進行一錯誤檢查糾正解碼,或是使用一參考資訊對所述至少一碼字進行該錯誤檢查糾正解碼,其中當該解碼電路對所述至少一碼字的一第一碼字進行該錯誤檢查糾正解碼的結果為失敗時,該解碼電路對所述至少一碼字的一第二碼字進行該錯誤檢查糾正解碼而產生一經解碼資料; 由該解碼電路檢查該第二碼字的每一碼字位元至該經解碼資料的一對應位元是否發生變化; 依照發生變化的該對應位元的一位元位置,由該解碼電路對應改變在該第一碼字中位於該位元位置的一位元值而將該第一碼字改為一經修改碼字,或者對應改變在該參考資訊中位於該位元位置的一參考值而將該參考資訊改為一經修改資訊;以及 由該解碼電路對該經修改碼字再一次進行該錯誤檢查糾正解碼,或是使用該經修改資訊對該第一碼字再一次進行該錯誤檢查糾正解碼,或是使用該經修改資訊對該經修改碼字再一次進行該錯誤檢查糾正解碼。
- 如申請專利範圍第1項所述的錯誤檢查糾正解碼方法,其中該第一碼字與該第二碼字來自於該非依電性記憶體中的相同位元線。
- 如申請專利範圍第2項所述的錯誤檢查糾正解碼方法,其中該第一碼字與該第二碼字來自於該非依電性記憶體中的相同成對頁的不同層頁。
- 如申請專利範圍第2項所述的錯誤檢查糾正解碼方法,其中該第一碼字與該第二碼字來自於該非依電性記憶體中的不同成對頁。
- 如申請專利範圍第1項所述的錯誤檢查糾正解碼方法,其中所述該對應位元發生變化,是指該第二碼字的一碼字位元至該經解碼資料的該對應位元發生變化並且該碼字位元的一可靠性資訊指出該碼字位元為強可靠的狀況。
- 如申請專利範圍第1項所述的錯誤檢查糾正解碼方法,其中該參考資訊包括一可靠性資訊,而所述對應改變在該參考資訊中位於該位元位置的該參考值之步驟包括: 當該第二碼字的一碼字位元至該經解碼資料的該對應位元發生變化並且該碼字位元的該可靠性資訊指出該碼字位元為強可靠時,由該解碼電路將該碼字位元的該可靠性資訊改變為弱可靠。
- 如申請專利範圍第1項所述的錯誤檢查糾正解碼方法,其中該參考資訊包括一可靠性資訊與一擦除資訊,而所述對應改變在該參考資訊中位於該位元位置的該參考值之步驟包括: 當該第二碼字的一碼字位元至該經解碼資料的該對應位元發生變化並且該碼字位元的該可靠性資訊指出該碼字位元為強可靠時,該解碼電路將該碼字位元的該擦除資訊標記為中性。
- 一種錯誤檢查糾正解碼裝置,包括: 一緩衝電路,用以暫存一非依電性記憶體所輸出的至少一碼字;以及 一解碼電路,耦接至該緩衝電路,用以對所述至少一碼字進行一錯誤檢查糾正解碼或是使用一參考資訊對所述至少一碼字進行該錯誤檢查糾正解碼,其中當該解碼電路對所述至少一碼字的一第一碼字進行該錯誤檢查糾正解碼的結果為失敗時,該解碼電路對所述至少一碼字的一第二碼字進行該錯誤檢查糾正解碼而產生一經解碼資料,該解碼電路檢查該第二碼字的每一碼字位元至該經解碼資料的一對應位元是否發生變化,依照發生變化的該對應位元的一位元位置該解碼電路對應改變在該第一碼字中位於該位元位置的一位元值而將該第一碼字改為一經修改碼字或者是對應改變在該參考資訊中位於該位元位置的一參考值而將該參考資訊改為一經修改資訊,以及該解碼電路對該經修改碼字再一次進行該錯誤檢查糾正解碼或是使用該經修改資訊對該第一碼字再一次進行該錯誤檢查糾正解碼或是使用該經修改資訊對該經修改碼字再一次進行該錯誤檢查糾正解碼。
- 如申請專利範圍第8項所述的錯誤檢查糾正解碼裝置,其中該第一碼字與該第二碼字來自於該非依電性記憶體中的相同位元線。
- 如申請專利範圍第9項所述的錯誤檢查糾正解碼裝置,其中該第一碼字與該第二碼字來自於該非依電性記憶體中的相同成對頁的不同層頁。
- 如申請專利範圍第9項所述的錯誤檢查糾正解碼裝置,其中該第一碼字與該第二碼字來自於該非依電性記憶體中的不同成對頁。
- 如申請專利範圍第8項所述的錯誤檢查糾正解碼裝置,其中所述該對應位元發生變化,是指該第二碼字的一碼字位元至該經解碼資料的該對應位元發生變化並且該碼字位元的一可靠性資訊指出該碼字位元為強可靠的狀況。
- 如申請專利範圍第8項所述的錯誤檢查糾正解碼裝置,其中該參考資訊包括一可靠性資訊,當該第二碼字的一碼字位元至該經解碼資料的該對應位元發生變化並且該碼字位元的該可靠性資訊指出該碼字位元為強可靠時,該解碼電路將該碼字位元的該可靠性資訊改變為弱可靠。
- 如申請專利範圍第8項所述的錯誤檢查糾正解碼裝置,其中該參考資訊包括一可靠性資訊與一擦除資訊,當該第二碼字的一碼字位元至該經解碼資料的該對應位元發生變化並且該碼字位元的該可靠性資訊指出該碼字位元為強可靠時,該解碼電路將該碼字位元的該擦除資訊標記為中性。
- 如申請專利範圍第8項所述的錯誤檢查糾正解碼裝置,其中該參考資訊包括一可靠性資訊,而該解碼電路包括: 一第一旗標; 一第二旗標; 一低密度同位檢查解碼器電路,耦接至該緩衝電路,用以使用該參考資訊對所述至少一碼字進行一低密度同位檢查解碼,以及檢查該第二碼字的一碼字位元至該經解碼資料的該對應位元是否發生變化,當該第二碼字的該碼字位元為邏輯1且該經解碼資料的該對應位元為邏輯0並且該碼字位元的該可靠性資訊指出該碼字位元為強可靠時,該低密度同位檢查解碼器電路設置第一旗標,當該第二碼字的該碼字位元為邏輯0且該經解碼資料的該對應位元為邏輯1並且該碼字位元的該可靠性資訊指出該碼字位元為強可靠時,該低密度同位檢查解碼器電路設置第二旗標; 一或閘,具有一第一輸入端與一第二輸入端分別耦接至該第一旗標與該第二旗標; 一第一及閘,具有一第一輸入端耦接至該或閘的輸出端,其中該第一及閘的一第二輸入端接收一致能信號;以及 一第二及閘,具有一非反相輸入端接收該碼字位元的該可靠性資訊,其中該第二及閘的一反相輸入端耦接至該第一及閘的輸出端,該第二及閘的一輸出端耦接至該低密度同位檢查解碼器電路。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106130144A TWI631570B (zh) | 2017-09-04 | 2017-09-04 | 錯誤檢查糾正解碼方法與裝置 |
CN201710897106.XA CN107506257B (zh) | 2017-09-04 | 2017-09-28 | 错误检查纠正解码方法与装置 |
US15/808,808 US10474529B2 (en) | 2017-09-04 | 2017-11-09 | Error checking and correcting decoding method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106130144A TWI631570B (zh) | 2017-09-04 | 2017-09-04 | 錯誤檢查糾正解碼方法與裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI631570B true TWI631570B (zh) | 2018-08-01 |
TW201913686A TW201913686A (zh) | 2019-04-01 |
Family
ID=60698995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106130144A TWI631570B (zh) | 2017-09-04 | 2017-09-04 | 錯誤檢查糾正解碼方法與裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10474529B2 (zh) |
CN (1) | CN107506257B (zh) |
TW (1) | TWI631570B (zh) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884926B2 (en) | 2017-06-16 | 2021-01-05 | Alibaba Group Holding Limited | Method and system for distributed storage using client-side global persistent cache |
US10678443B2 (en) | 2017-07-06 | 2020-06-09 | Alibaba Group Holding Limited | Method and system for high-density converged storage via memory bus |
US10496829B2 (en) | 2017-09-15 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for data destruction in a phase change memory-based storage device |
US10642522B2 (en) | 2017-09-15 | 2020-05-05 | Alibaba Group Holding Limited | Method and system for in-line deduplication in a storage drive based on a non-collision hash |
US10789011B2 (en) | 2017-09-27 | 2020-09-29 | Alibaba Group Holding Limited | Performance enhancement of a storage device using an integrated controller-buffer |
US10860334B2 (en) | 2017-10-25 | 2020-12-08 | Alibaba Group Holding Limited | System and method for centralized boot storage in an access switch shared by multiple servers |
US10445190B2 (en) * | 2017-11-08 | 2019-10-15 | Alibaba Group Holding Limited | Method and system for enhancing backup efficiency by bypassing encoding and decoding |
US10877898B2 (en) | 2017-11-16 | 2020-12-29 | Alibaba Group Holding Limited | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements |
US10891239B2 (en) | 2018-02-07 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for operating NAND flash physical space to extend memory capacity |
US10496548B2 (en) | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
US10831404B2 (en) | 2018-02-08 | 2020-11-10 | Alibaba Group Holding Limited | Method and system for facilitating high-capacity shared memory using DIMM from retired servers |
WO2019222958A1 (en) | 2018-05-24 | 2019-11-28 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
WO2020000136A1 (en) | 2018-06-25 | 2020-01-02 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of i/o requests |
US10921992B2 (en) | 2018-06-25 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency |
US10871921B2 (en) | 2018-07-30 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for facilitating atomicity assurance on metadata and data bundled storage |
US10996886B2 (en) | 2018-08-02 | 2021-05-04 | Alibaba Group Holding Limited | Method and system for facilitating atomicity and latency assurance on variable sized I/O |
US10747673B2 (en) | 2018-08-02 | 2020-08-18 | Alibaba Group Holding Limited | System and method for facilitating cluster-level cache and memory space |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
US10852948B2 (en) | 2018-10-19 | 2020-12-01 | Alibaba Group Holding | System and method for data organization in shingled magnetic recording drive |
US10795586B2 (en) | 2018-11-19 | 2020-10-06 | Alibaba Group Holding Limited | System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash |
US10769018B2 (en) | 2018-12-04 | 2020-09-08 | Alibaba Group Holding Limited | System and method for handling uncorrectable data errors in high-capacity storage |
US10884654B2 (en) | 2018-12-31 | 2021-01-05 | Alibaba Group Holding Limited | System and method for quality of service assurance of multi-stream scenarios in a hard disk drive |
US10977122B2 (en) | 2018-12-31 | 2021-04-13 | Alibaba Group Holding Limited | System and method for facilitating differentiated error correction in high-density flash devices |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US11132291B2 (en) | 2019-01-04 | 2021-09-28 | Alibaba Group Holding Limited | System and method of FPGA-executed flash translation layer in multiple solid state drives |
US10860420B2 (en) | 2019-02-05 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for mitigating read disturb impact on persistent memory |
US11200337B2 (en) | 2019-02-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for user data isolation |
US10970212B2 (en) | 2019-02-15 | 2021-04-06 | Alibaba Group Holding Limited | Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones |
US11061834B2 (en) | 2019-02-26 | 2021-07-13 | Alibaba Group Holding Limited | Method and system for facilitating an improved storage system by decoupling the controller from the storage medium |
US10783035B1 (en) | 2019-02-28 | 2020-09-22 | Alibaba Group Holding Limited | Method and system for improving throughput and reliability of storage media with high raw-error-rate |
US10891065B2 (en) | 2019-04-01 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive |
US10922234B2 (en) | 2019-04-11 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive |
US10908960B2 (en) | 2019-04-16 | 2021-02-02 | Alibaba Group Holding Limited | Resource allocation based on comprehensive I/O monitoring in a distributed storage system |
US11169873B2 (en) | 2019-05-21 | 2021-11-09 | Alibaba Group Holding Limited | Method and system for extending lifespan and enhancing throughput in a high-density solid state drive |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11126561B2 (en) | 2019-10-01 | 2021-09-21 | Alibaba Group Holding Limited | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive |
US11042307B1 (en) | 2020-01-13 | 2021-06-22 | Alibaba Group Holding Limited | System and method for facilitating improved utilization of NAND flash based on page-wise operation |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US10923156B1 (en) | 2020-02-19 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive |
US10872622B1 (en) | 2020-02-19 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for deploying mixed storage products on a uniform storage infrastructure |
US11150986B2 (en) | 2020-02-26 | 2021-10-19 | Alibaba Group Holding Limited | Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction |
US11144250B2 (en) | 2020-03-13 | 2021-10-12 | Alibaba Group Holding Limited | Method and system for facilitating a persistent memory-centric system |
US11200114B2 (en) | 2020-03-17 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating elastic error correction code in memory |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11218165B2 (en) | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090241008A1 (en) * | 2008-03-18 | 2009-09-24 | Samsung Electronics Co., Ltd. | Memory devices and encoding and/or decoding methods |
TWM417635U (en) * | 2011-05-06 | 2011-12-01 | Ite Tech Inc | Memory device with high reliability |
TW201335942A (zh) * | 2012-02-24 | 2013-09-01 | Silicon Motion Inc | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統 |
US20140129896A1 (en) * | 2012-11-08 | 2014-05-08 | Micron Technology, Inc. | Error correction methods and apparatuses using first and second decoders |
TW201604882A (zh) * | 2014-07-16 | 2016-02-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US9524210B1 (en) * | 2015-03-02 | 2016-12-20 | Crossbar, Inc. | Separating bits represented by a MLC in connection with ECC |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2511672A1 (en) * | 2002-12-24 | 2004-07-15 | Matsushita Electric Industrial Co., Ltd. | Recording and reproduction apparatus, recording apparatus, editing apparatus, information recording medium, recording and reproduction method, recording method, and editing method |
US7069494B2 (en) * | 2003-04-17 | 2006-06-27 | International Business Machines Corporation | Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism |
CN101162965B (zh) * | 2006-10-09 | 2011-10-05 | 华为技术有限公司 | 一种ldpc码的纠删译码方法及系统 |
US8255758B2 (en) * | 2008-01-21 | 2012-08-28 | Apple Inc. | Decoding of error correction code using partial bit inversion |
US8301979B2 (en) * | 2008-10-07 | 2012-10-30 | Sandisk Il Ltd. | Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders |
US8429498B1 (en) * | 2009-03-25 | 2013-04-23 | Apple Inc. | Dual ECC decoder |
US9252813B2 (en) * | 2009-05-27 | 2016-02-02 | Novelsat Ltd. | Iterative decoding of LDPC codes with iteration scheduling |
US9286972B2 (en) * | 2012-02-22 | 2016-03-15 | Silicon Motion, Inc. | Method, memory controller and system for reading data stored in flash memory |
CN104572334B (zh) * | 2013-10-14 | 2017-11-21 | 群联电子股份有限公司 | 解码方法、存储器存储装置与存储器控制电路单元 |
US9270296B1 (en) * | 2013-11-13 | 2016-02-23 | Western Digital Technologies, Inc. | Method and system for soft decoding through single read |
US9342404B2 (en) * | 2013-12-12 | 2016-05-17 | Phison Electronics Corp. | Decoding method, memory storage device, and memory controlling circuit unit |
KR20160046467A (ko) * | 2014-10-21 | 2016-04-29 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템, 데이터 저장 시스템 및 그것의 동작 방법 |
US9588772B2 (en) * | 2015-02-20 | 2017-03-07 | Kabushiki Kaisha Toshiba | Memory controller and decoding method |
US9690517B2 (en) * | 2015-05-22 | 2017-06-27 | Texas Instruments Incorporated | Dual-mode error-correction code/write-once memory codec |
US10090862B2 (en) * | 2016-03-23 | 2018-10-02 | SK Hynix Inc. | Hybrid soft decoding algorithm for multiple-dimension TPC codes |
CN106847342B (zh) * | 2016-03-28 | 2020-05-29 | 威盛电子股份有限公司 | 非易失性存储器装置及其空页检测方法 |
-
2017
- 2017-09-04 TW TW106130144A patent/TWI631570B/zh active
- 2017-09-28 CN CN201710897106.XA patent/CN107506257B/zh active Active
- 2017-11-09 US US15/808,808 patent/US10474529B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090241008A1 (en) * | 2008-03-18 | 2009-09-24 | Samsung Electronics Co., Ltd. | Memory devices and encoding and/or decoding methods |
TWM417635U (en) * | 2011-05-06 | 2011-12-01 | Ite Tech Inc | Memory device with high reliability |
TW201335942A (zh) * | 2012-02-24 | 2013-09-01 | Silicon Motion Inc | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統 |
US20140129896A1 (en) * | 2012-11-08 | 2014-05-08 | Micron Technology, Inc. | Error correction methods and apparatuses using first and second decoders |
TW201604882A (zh) * | 2014-07-16 | 2016-02-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US9524210B1 (en) * | 2015-03-02 | 2016-12-20 | Crossbar, Inc. | Separating bits represented by a MLC in connection with ECC |
Also Published As
Publication number | Publication date |
---|---|
CN107506257A (zh) | 2017-12-22 |
US10474529B2 (en) | 2019-11-12 |
CN107506257B (zh) | 2020-05-19 |
TW201913686A (zh) | 2019-04-01 |
US20190073262A1 (en) | 2019-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI631570B (zh) | 錯誤檢查糾正解碼方法與裝置 | |
US10417086B2 (en) | Data write method and memory storage device using the same | |
KR101369444B1 (ko) | 정정 불가능한 에러를 해결하는 하이브리드 에러 정정 코딩 | |
US9543983B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US8938659B2 (en) | Low-density parity-check decoder disparity preprocessing | |
KR101990971B1 (ko) | 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법 | |
US10067824B2 (en) | Error processing method, memory storage device and memory controlling circuit unit | |
US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
US8996950B2 (en) | Erasure correction using single error detection parity | |
US10103748B2 (en) | Decoding method, memory control circuit unit and memory storage device | |
US9312885B2 (en) | Nonvolatile semiconductor memory system error correction capability of which is improved | |
US9274891B2 (en) | Decoding method, memory storage device, and memory controlling circuit unit | |
US10685711B1 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
US20100318874A1 (en) | Electronic memory device and method for error correcting thereof | |
JP2019057752A (ja) | メモリシステム | |
CN111538621B (zh) | 针对位线故障的软芯片猎杀恢复 | |
TWI536749B (zh) | 解碼方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI686812B (zh) | 記憶體測試方法及其記憶體裝置 | |
TWI594253B (zh) | 非依電性記憶體裝置及其空頁偵測方法 | |
CN106847342B (zh) | 非易失性存储器装置及其空页检测方法 | |
CN105304143A (zh) | 解码方法、存储器控制电路单元及存储器存储装置 | |
TWI566094B (zh) | 資料儲存裝置及其資料更新方法 | |
US11250909B2 (en) | Nonvolatile memory and memory system | |
TWI691967B (zh) | 解碼方法及相關的快閃記憶體控制器與電子裝置 |