TWI697907B - 記憶體控制器及快閃記憶體的存取方法 - Google Patents
記憶體控制器及快閃記憶體的存取方法 Download PDFInfo
- Publication number
- TWI697907B TWI697907B TW109101189A TW109101189A TWI697907B TW I697907 B TWI697907 B TW I697907B TW 109101189 A TW109101189 A TW 109101189A TW 109101189 A TW109101189 A TW 109101189A TW I697907 B TWI697907 B TW I697907B
- Authority
- TW
- Taiwan
- Prior art keywords
- codeword
- variable node
- memory
- value
- flash memory
- Prior art date
Links
Images
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
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Error Detection And Correction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明係提供一種快閃記憶體的存取方法,應用於資料儲存裝置中的記憶體控制器。該方法包括下列步驟:經由一儲存程序將資料儲存至該資料儲存裝置之一快閃記憶體;取得從資料儲存裝置之快閃記憶體所讀取的通道值;取得一碼字差值,並依據碼字差值計算一徵狀值(syndrome);以及在每次LDPC解碼疊代之期間,執行下列步驟:依據通道值及徵狀值以決定徵狀權重;取得先前LDPC解碼疊代所產生的先前碼字;依據徵狀權重及預定閾值以決定先前碼字之各碼字位元的位元翻轉演算法之翻轉策略,並依據翻轉策略以翻動該先前碼字中之一或多個碼字位元以產生一更新碼字;以及將更新碼字減去先前碼字以產生碼字差值。
Description
本發明係有關於資料存取,特別是有關於一種記憶體控制器及快閃記憶體的存取方法。
隨著半導體技術的進步,低密度同位元檢查(low-density parity check,LDPC)碼在近年來已可用超大型積體(very-large-scale integration,VLSI)電路所實現,且廣泛應用於數位通訊領域(例如包括無線通訊及光纖通訊)以及資料傳輸領域(例如用於資料儲存裝置,如快閃記憶體、固態硬碟)以做為錯誤更正碼(error correction code,ECC)。
低密度同位元檢查解碼器係使用具有同位元(parity bit)的線性錯誤校正碼來進行解碼,其中同位元會提供用以驗證接收到的碼字(codeword)的同位元方程式給LDPC解碼器。舉例來說,低密度同位元查核碼可為一具有固定長度的二進位碼,其中所有的符元(symbol)相加會等於零。
在資料的編碼過程中,所有的資料位元會被重複執行並且被傳送至對應的編碼器,其中每個編碼器會產生一同位符元(parity symbol)。碼字係由k個訊息位元(information digit)以及r個檢查位元(check digit)所組成。若碼字總共有n位元,則表示k=n-r。上述碼字可用一同位元檢查矩陣來表示,其中該同位元檢查矩陣具有r列(表示方程式的數量)以及n行(表示位元數),如第1圖所示。這些碼之所以被稱為「低密度」是因為相較於同位元檢查矩陣中位元0的數量而言,位元1的數量相對的少。在解碼過程中,每次的同位元檢查皆可視為一同位元查核碼,並隨後與其他同位元查核碼一起進行交互檢查(cross-check),其中解碼會在檢查節點(check node)進行,而交互檢查會在變數節點(variable node)進行。
低密度同位元檢查解碼器支持三種模式:硬判定硬解碼(hard decision hard decoding)、軟判定硬解碼(soft decision soft decoding),以及軟判定軟解碼(soft decision hard decoding)。第1A圖係為同位元檢查矩陣H的示意圖。第1B圖係為坦納圖(Tanner Graph)的示意圖。如第1A圖所示,在同位元檢查矩陣H的每一列可形成一檢查節點,例如分別為檢查節點C1、C2、C3及C4。在同位元檢查矩陣H的每一行可形成一變數節點,例如分別為變數節點V1、V2、V3、V4、V5、V6及V7。
坦納圖為另一種表示碼字的方式,並且可用於解釋當使用一位元翻轉(bit flipping)演算法時,低密度同位元檢查解碼器的一些關於硬判定軟解碼的操作。
如第1B圖所示,在坦納圖中,方形節點C1~C4所表示的檢查節點代表同位元(parity bit)的數量,且圓形節點V1~V7所表示的變數節點(variable node)係為一碼字中位元的數量。如果一特定方程式與碼符元(code symbol)有關,則對應的檢查節點與變數節點之間會以連線來表示。被估測的資訊會沿著這些連線來傳遞,並且於節點上以不同的方式組合。
當開始進行LDPC解碼時,變數節點將發送一估測資訊(estimate)至所有連線上的檢查節點,其中這些連線包含被認為是正確的位元。接著,每個檢查節點會依據對所有其他的連接的估測(connected estimate)來針對每一變數節點進行新的估測,並且將新的估測資訊傳回至變數節點。新的估測係基於:同位元檢查方程式迫使所有的變數節點連接至一特定檢查節點,以使總和為零。
這些變數節點會接收新的估測資訊以及使用一多數規則(majority rule)(亦即硬判定),來判斷所傳送的原始位元之數值是否正確。若判斷原始位元之數值不正確,該原始位元會被翻轉(flipped)。該翻轉後的位元接著會被傳回至該些檢查節點,且上述步驟會被疊代地執行一預定次數,直到符合這些檢查節點的同位元檢查方程式。若有符合這些同位元檢查方程式(亦即檢查節點所計算之數值符合接收自變數節點之數值),則可啟用提前終止(early termination),這會使得系統在最大疊代次數達到之前就結束解碼程序。
該些同位元檢查限制係由進行一徵狀檢查(syndrome check)來實施。一個有效的碼字將會符合方程式:H.C
T=S=0,其中H係為同位元檢查矩陣、C係為硬判定碼字(hard decision codeword),且S係為徵狀(syndrome)。當S等於零時,表示解碼程序已完成,且不需要更進一步的資訊。一般來說,硬判定以及徵狀檢查會在疊代期間執行,其中一非零(non-zero)徵狀表示有奇性(odd parity)存在,並且需要再執行新的解碼疊代。
傳統的位元翻轉LDPC解碼器在解碼階段時,因為碼字資料中的1之數量比例很高,故在記憶體之資料線的切換率(toggle rate)也很高,故傳統的位元翻轉LDPC解碼器之功耗也會相當高。
因此,本發明係提出一種使用記憶體控制器及快閃記憶體的存取方法,其可改變在解碼器中在解碼階段之變數節點單元及檢查節點單元的資料控制流程,並可對誤差樣式進行疊代計算,故可讓在變數節點單元中所存取的碼字資料中的1之比例大幅下降,進而大幅降低資料線的切換率並降低解碼器之功耗。此外,在解碼階段中可不存取通道值記憶體的通道值,可進一步節省功耗。
本發明係提供一種使用記憶體控制器,用於一資料儲存裝置,其中該記憶體控制器所執行的低密度同位元檢查(LDPC)流程係依序包括一初始階段、一解碼階段及一輸出階段,該記憶體控制器包括:一變數節點單元及一檢查節點單元。在該解碼階段,於每次LDPC解碼疊代之期間:該檢查節點單元係由該變數節點單元取得一碼字差值,並依據該碼字差值計算一徵狀值(syndrome),且該變數節點單元係執行:依據來自該檢查節點單元之該徵狀值以決定一徵狀權重(syndrome weight);從一變數節點記憶體取得一先前LDPC解碼疊代所產生的一先前碼字,而不從一通道值記憶體取得從該資料儲存裝置中之一快閃記憶體所讀取的一通道值;依據該徵狀權重執行一位元翻轉(bit-flipping)演算法以翻動該先前碼字中之一或多個碼字位元以產生一更新碼字;以及將該更新碼字減去該先前碼字以產生該碼字差值。
在一些實施例中,在該初始階段,該變數節點單元係從該通道值記憶體取得從該快閃記憶體所讀取的該通道值,並將通道值傳送至檢查節點單元以計算出該徵狀值。
在一些實施例中,該資料儲存裝置中之一亂數編譯器係對來自一主機的主機資料進行編譯以產生一亂數資料,且該資料儲存裝置中一LDPC編碼器係將該亂數資料進行編碼以產生對應的查核碼,並將該亂數資料及對應的該查核碼儲存於該快閃記憶體。此外,從該快閃記憶體所讀取的該通道值包括該亂數資料及對應的該查核碼。
在一些實施例中,在該初始階段,因應於該徵狀值不等於0,該變數節點單元係將一更新碼字設定為0並將該更新碼字寫入至該變數節點記憶體。在該解碼階段,因應於該變數節點單元判斷該徵狀值等於0或疊代次數已達到一上限值,該變數節點單元係結束該解碼階段並進入該輸出階段。
在一些實施例中,在該輸出階段,該LDPC解碼器係將該變數節點記憶體所儲存的該更新碼字輸出為一變數節點符號值,其中該LDPC解碼器係將該變數節點符號值設定為一誤差值,並將該變數節點符號值與該通道值相加以得到解碼結果。
本發明更提供一種快閃記憶體的存取方法,應用於一資料儲存裝置中的一記憶體控制器,其中該方法包括一初始階段、一解碼階段及一輸出階段,該LDPC方法包括:在該解碼階段,於每次LDPC解碼疊代之期間,執行下列步驟:取得一碼字差值,並依據該碼字差值計算一徵狀值(syndrome);依據來自該檢查節點單元之該徵狀值以決定一徵狀權重(syndrome weight);從一變數節點記憶體取得一先前LDPC解碼疊代所產生的一先前碼字,而不從一通道值記憶體取得從該資料儲存裝置中之一快閃記憶體所讀取的一通道值;依據該徵狀權重執行一位元翻轉(bit-flipping)演算法以翻動該先前碼字中之一或多個碼字位元以產生一更新碼字;以及將該更新碼字減去該先前碼字以產生該碼字差值。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的"包含"、"包括"等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如"第一"、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第2圖為依據本發明一實施例的資料儲存裝置的方塊圖。
在一實施例中,資料儲存裝置200可以是可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)或是固態硬碟(solid-state drive,SSD),且主機230為一可與資料儲存裝置200連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等。在另一實施例中,資料儲存裝置200可以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是該電子裝置的一處理器。
如第2圖所示,資料儲存裝置200包括一記憶體控制器210及一快閃記憶體220,其中記憶體控制器210係用以存取快閃記憶體220。在一實施例中,記憶體控制器210包括一處理單元211、一儲存單元212、一控制邏輯216、一緩衝記憶體218及存取介面250及252。處理單元211可由專用硬體電路或通用硬體所實現,具有多個處理核心的處理器或是具平行處理能力的多處理器,且上述實現方式例如可為通用處理器(General-Purpose Processor)、或微控制器(Microcontroller),但本發明並不限於此。
儲存單元212可為非揮發性記憶體,例如為唯讀記憶體(read-only memory,ROM)、可擦除式可程式化唯讀記憶體(erasable programmable read-only memory,EPROM)、電子可擦除式可程式化唯讀記憶體(electrically erasable programmable read-only memory,EEPROM)或電子熔絲(E-Fuse)。儲存單元212係儲存啟動程式213,其包括啟動碼(Boot Code)或啟動程式(Bootloader),且可由處理單元211執行,記憶體控制器210基於啟動程式213而完成開機,並開始控制該快閃記憶體220的運作,例如,讀取線上燒錄(In System Programming,ISP)碼。
快閃記憶體220例如為NAND快閃記憶體,且快閃記憶體220包括複數個實體區塊(physical block)240,且各實體區塊包括複數個實體頁面(physical page)241。
處理單元211與快閃記憶體220間的資料與操作命令傳遞係透過數個電子信號進行協調,上述電子信號包括資料線(data line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(chip enable,CE)、位址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、寫入致能(write enable,WE)等控制訊號。
存取介面250可採用雙倍資料率(double data rate, DDR)通訊協定與快閃記憶體220溝通,例如,開放NAND快閃(open NAND flash interface,ONFI)、雙倍資料率開關(DDR Toggle)或其他介面。處理單元211另可使用存取介面252透過指定通訊協定與主機230進行溝通,例如,通用序列匯流排(universal serial bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express, PCI-E)、非揮發性記憶體的傳輸規範(Non-Volatile Memory Express,NVMe)或其他介面。
緩衝記憶體218可為一揮發性記憶體,例如包括一動態隨機存取記憶體(dynamic random access memory,DRAM)及/或一靜態隨機存取記憶體(static random access memory,SRAM)。在此實施例,緩衝記憶體218包括一通道值記憶體(channel value memory,CHVMem)2181及變數節點記憶體(variable node memory,VNMem)2182。通道值記憶體2181係用以暫存來自存取介面250所讀取的快閃記憶體220的原始頁面資料(或稱為碼字)、或是用以暫存來自主機230的主機指令。變數節點記憶體2182係用以暫存在進行低密度同位元檢查之解碼過程中在各變數節點之變數節點資料。此外,通道值記憶體2181所儲存的碼字例如可為硬判定或軟判定之方式由快閃記憶體220所讀取的資訊,其中硬判定(hard decision)是採用單一讀取電壓閾值,故所得到的碼字只有符號(sign)資訊。軟判定(soft decision)則是利用多個讀取電壓閾值,故所得到的碼字除了符號資訊之外,還帶有可靠度資訊,例如每個碼字位元可使用至少一位元的可靠度資訊來表示。若可靠度資訊用一位元表示,則可用0及1分別表示強(strong)及弱(weak)兩種不同的可靠度,則碼字位元搭配可靠度則可分為強”1”、弱”1”、弱”0”及強”0”。
控制邏輯216包括一編碼器214、一解碼器215、一亂數編譯器(randomizer)261、及一亂數解譯器(de-randomizer)262。在一些實施例中,編碼器214、解碼器215亂數編譯器261、亂數解譯器262及控制邏輯216例如可為硬體電路,且可由應用導向積體電路(application-specific integrated circuit,ASIC)、現場可程式化邏輯閘陣列(field-programmable gate array,FPGA)、複雜可程式化邏輯裝置(complex programmable logic device,CPLD)、或具有相同功能的邏輯電路所實現,但本發明並不限於此。
在一實施例中,亂數編譯器261在編碼流程中例如可設置於編碼器214之前(靠近主機端),意即來自主機230的資料會先經過亂數編譯器261以產生亂數資料,其中在亂數資料中的位元0及位元1的比例約為50%:50%,意即為0跟1實質上(substantially)各半的亂數資料,藉以增進快閃記憶體220之磨損平衡(wear leveling)。編碼器214例如為一低密度同位元查核碼(LDPC)編碼器,且可以根據來自亂數編譯器261的亂數資料來產生對應的查核碼,且所產生的查核碼符合一查核碼檢查矩陣。具體來說,參考第3圖,假設該查核碼檢查矩陣為一大小為c*t的矩陣(例如,列數c=5,行數t=48),而該查核碼檢查矩陣可以分為左側的矩陣M(大小為c*(t-c))以及右側的矩陣K(大小為c*c),為了找出與該查核碼檢查矩陣所對應的查核碼產生矩陣,可以先找出矩陣K的反矩陣K
-1(inverse matrix),之後再將反矩陣(K
-1)與矩陣M相乘以得到矩陣P,而矩陣P的轉置矩陣(transpose matrix)便可以作為查核碼產生矩陣。換句話說,在找到矩陣P的轉置矩陣之後,編碼器214可以將來自亂數編譯器261的亂數資料乘以矩陣P的轉置矩陣來得到對應於該些資料的查核碼,而編碼器214之後再將資料與查核碼一起乘上該查核碼檢查矩陣以判斷查核碼是否正確。舉例來說,若是相乘結果等於“0”則判斷編碼正確;而若是相乘結果不等於“0”則判斷編碼錯誤。在判斷編碼正確之後,編碼器214係將亂數資料與對應的查核碼寫入至快閃記憶體220的其中一個實體頁面中。
在此實施例中,解碼器215及亂數解譯器262在解碼流程中之順序係相對於在編碼流程中亂數編譯器261及編碼器214的順序,意即從快閃記憶體220讀取出來的通道值會先經過解碼器215後再經過亂數解譯器262。在一些實施例中,亂數編譯器261及亂數解譯器262亦可分別稱為擾亂器(scrambler)及解擾器(descrambler)。
解碼器215例如為低密度同位元查核碼(LDPC)解碼器。當主機230發送一讀取指令至資料儲存裝置230,記憶體控制器210係由快閃記憶體220取得儲存的原始頁面資料,例如又稱為通道值。在此實施例中,因為從快閃記憶體220所讀取的通道值尚未經過亂數解譯器262進行亂數解譯,表示通道值中的位元1及位元0的數量也是實質上各佔50%。通道值例如包括初始亂數資料及錯誤校正碼資料。因為初始亂數資料及錯誤校正碼資料在經過通道傳輸時可能產生錯誤,故解碼器215可利用錯誤校正碼資料以對初始亂數資料及/或錯誤校正碼資料本身進行錯誤校正,例如可採用一位元翻轉(bit flipping)演算法進行LDPC解碼。因此,解碼器215所產生的解碼結果即為在編碼器214所輸入的正確亂數資料,亂數資料再經過亂數解譯器262進行亂數解譯以得到原本的頁面資料。
在另一實施例中,在編碼流程中之編碼器214及亂數編譯器261、以及在解碼流程中之解碼器215及亂數解譯器262之設置方式與上述實施例略有不同。舉例來說,亂數編譯器215及亂數解譯器262可設置於快閃記憶體端。在編碼流程中,來自主機230的資料會先經過編碼器214進行編碼以產生對應的查核碼,且資料及對應的查核碼會經過亂數編譯器261以產生亂數資料並寫入快閃記憶體220。在解碼流程中,由快閃記憶體220所讀取的通道值會先經過亂數解譯器262進行亂數解譯以還原為原始資料及對應的查核碼。接著,解碼器215再對亂數解譯器262所產生的原始資料及對應的查核碼進行LDPC解碼,並輸出校正後的正確資料。
需注意的是,無論亂數編譯器261及亂數解譯器262是設置於主機端或快閃記憶體端,本發明之LDPC解碼方法均可實施。
第4圖為依據本發明第一實施例中之解碼器215的方塊圖。如第4圖所示,解碼器215包括一變數節點單元(variable node unit,VNU)410及一檢查節點單元(check node unit,CNU)420。解碼器215中之資料流程例如可分為三個階段:初始階段(initial phase)、解碼階段(decoding phase)及輸出階段(output phase)。
在第一實施例中,在初始階段,解碼器215開始進行LDPC解碼,且變數節點單元410會將變數節點記憶體2182中所暫存的先前碼字重置為0。初始階段即為第一次疊代運算,變數節點單元410會由通道值記憶體2181取得通道值CH_sgn,並將通道值CH_sgn直接旁路傳送(bypass)至檢查節點單元420。其中,上述通道值例如可為使用硬決定(hard decision)或軟決定(soft decision)的方式從快閃記憶體220所讀取的原始頁面資料。
檢查節點單元420係依據初始的通道值計算出第一次疊代運算的徵狀值(syndrome),意即可先計算如第1A圖所示的水平列的檢查節點C1~C4。檢查節點單元420並將所計算出的徵狀值傳送至變數節點單元410。變數節點單元410係可依據來自檢查節點單元420的徵狀值以判斷是否需要繼續進行後續變數節點的運算。若徵狀值為0,變數節點單元410係判斷不需要繼續進行後續變數節點的運算,並結束初始階段,並進入輸出階段。若徵狀值不為0,變數節點單元410並依據通道值CH_sgn及來自檢查節點單元420的徵狀值syndrome以計算出徵狀權重(syndrome weight),並依據徵狀權重執行一位元翻轉演算法以決定通道值CH_sgn中一或多個碼字位元需要進行位元翻轉,其中上述位元翻轉演算法可利用本發明領域中之習知技術所實現,故其細節於此不再詳述。
接著,變數節點單元410將通道值進行位元翻轉後產生的更新碼字VN_new儲存至變數節點記憶體2182以供後續的疊代運算使用。此時,LDPC解碼的初始階段結束,並進入解碼階段。
在解碼階段中,解碼器215中的變數節點單元410及檢查節點單元420會持續進行疊代(iteration),直到檢查節點單元420所產生的徵狀值為止或是已達到疊代次數的上限值為止。舉例來說,在每次疊代運算的期間,變數節點單元410均會先由通道值記憶體2181及變數節點記憶體2182分別取得通道值CH_sgn及先前碼字VN_prev,其中先前碼字VN_prev即為前次疊代運算中所產生並儲存至變數節點記憶體2182的更新碼字VN_new。變數節點單元410並依據通道值CH_sgn及來自檢查節點單元420的徵狀值syndrome以計算出一徵狀權重(syndrome weight),並依據徵狀權重執行上述位元翻轉演算法以決定通道值CH_sgn中一或多個碼字位元需要進行位元翻轉。接著,變數節點單元410將通道值進行位元翻轉後產生的更新碼字VN_new儲存至變數節點記憶體2182以供後續的疊代運算使用。變數節點單元410並計算上述更新碼字VN_new與先前碼字VN_prev之間的差值Diff,並將差值Diff傳送至檢查節點單元420以進行徵狀(syndrome)值的相關運算。當在解碼階段中之一特定疊代運算所產生的徵狀值為0或是疊代次數已達到一上限值,則解碼階段結束,並進入輸出階段。
在輸出階段中,解碼器215可將儲存於變數節點單元410中的更新碼字VN_new輸出以做為解碼結果。此外,更新碼字VN_new及通道值會經過一加法器430以得到解碼結果及通道值之間的誤差值,其中利用上述誤差值可得知通道值中有幾個位元產生錯誤,故可用於判斷快閃記憶體220目前的健康狀況(health status)。
第5圖為依據本發明第二實施例中之解碼器215的方塊圖。在第二實施例中,在第5圖中之變數節點單元410及檢查節點單元420之電路功能與第4圖相同,但第5圖之資料控制流程與第4圖不同。
舉例來說,在初始階段,解碼器215開始進行LDPC解碼,且變數節點單元410會將變數節點記憶體2182中所暫存的先前碼字重置為0。初始階段即為第一次疊代運算,變數節點單元410同樣會由通道值記憶體2181取得通道值CH_sgn,並將通道值CH_sgn直接旁路傳送(bypass)至檢查節點單元420。
檢查節點單元420係依據初始的通道值計算出第一次疊代運算的徵狀值(syndrome),並將所計算出的徵狀值傳送至變數節點單元410。變數節點單元410係可依據來自檢查節點單元420的徵狀值以判斷是否需要繼續進行後續變數節點的運算。若徵狀值為0,變數節點單元410係判斷不需要繼續進行後續變數節點的運算,並結束初始階段,並進入輸出階段。若徵狀值不為0,則變數節點單元410則直接將更新碼字VN_new設定為0並將更新碼字VN_new寫入變數節點記憶體2182,並結束初始階段,並進入解碼階段。
在解碼階段中,解碼器215中的變數節點單元410及檢查節點單元420會持續進行疊代(iteration),直到檢查節點單元420所產生的徵狀值為止或是已達到疊代次數的上限值為止。然而,第5圖之實施例與第4圖實施例不同之處,在於解碼階段的每次疊代運算的期間,變數節點單元410係由變數節點記憶體2182取得先前碼字VN_prev,但並不從通道值記憶體2181取得通道值CH_sgn。故在解碼階段中,可關閉通道值記憶體2181以節省功耗。
變數節點單元410並依據來自檢查節點單元420的徵狀值syndrome以計算出一徵狀權重(syndrome weight),並依據徵狀權重執行上述位元翻轉演算法以決定在先前碼字VN_prev中一或多個碼字位元需要進行位元翻轉。接著,變數節點單元410將通道值進行位元翻轉後產生的更新碼字VN_new儲存至變數節點記憶體2182以供後續的疊代運算使用。變數節點單元410並計算上述更新碼字VN_new與先前碼字VN_prev之間的差值Diff,並將差值Diff傳送至檢查節點單元420以進行徵狀(syndrome)值的相關運算。當在解碼階段中之一特定疊代運算所產生的徵狀值為0或是疊代次數已達到一上限值,則解碼階段結束,並進入輸出階段。
在輸出階段,解碼器215係將儲存於變數節點記憶體2182中的更新碼字VN_new輸出為變數節點符號值VN_sgn,並將變數節點符號值VN_sgn與通道值CH_sgn相加以得到解碼結果。因為變數節點記憶體2182所儲存的更新碼字VN_new即為雜訊e經過疊代運算後得到的結果,故可將變數節點記憶體2182所輸出的變數節點符號值VN_sgn做為誤差值,其中利用上述誤差值可得知通道值中有幾個位元產生錯誤,故可用於判斷快閃記憶體220目前的健康狀況(health status)。
詳細而言,在第5圖之實施例中的解碼階段,變數節點單元410例如僅對碼字差值進行相關運算,但最後仍然可得到與第4圖之解碼流程相同的解碼結果。上述現象例如可從LDPC演算法的數學式進行推導。
舉例來說,因為LDPC演算法為一線性分組碼(linear block code),故兩個不同碼字相加的結果可得到另一個碼字。因此,從快閃記憶體220所讀取而得的通道值y可視為正確碼字c及雜訊e相加的結果,例如可用式(1)表示:
意即,在正確碼字c設定為0的情況下,每次LDPC解碼疊代所得到的徵狀值S僅與雜訊e有關,其中雜訊e即可視為錯誤碼字位元。
將式(4)中的正確碼字c設定為0例如可對應至第5圖實施例中之初始階段,變數節點單元410則直接將更新碼字VN_new設定為0並將更新碼字VN_new寫入變數節點記憶體2182。需注意的是,因為寫入快閃記憶體220之資料是先經過亂數編譯器261產生的亂數資料再經過編碼器214編碼,故在解碼過程式,解碼器215所取得的碼字同樣可視為0與1實質上各佔50%的高密度/高權重的資料。
在第4圖之實施例中的解碼階段,變數節點記憶體2182所存取的內容即為0與1實質上各佔50%的碼字,故在變數節點記憶體2182之資料線(data line)上的切換率(toggle rate)也相當高,例如可視為50%。
當使用第5圖實施例中之資料控制流程時,變數節點記憶體2182所存取的內容為誤差樣式(error pattern)。因為正常的快閃記憶體220之原始位元錯誤率(raw bit error rate,RBER)約小於1%,故上述誤差樣式中的”1”之比例約同樣小於1%。因此,變數節點記憶體2182可由第4圖實施例中的50%切換率大幅降低為1%以下,故可大幅節省進行解碼器214的功耗。此外,在第5圖實施例中的解碼階段並不用存取通道值記憶體2181,故通道值記憶體2181之資料線的切換率為0,可進一步降低解碼器214的功耗。
式(5)的運算過程例如可對應至第5圖實施例中之解碼階段,意即在每次LDPC的疊代中均是對雜訊e進行運算,且當解碼階段結束時,儲存於變數節點記憶體2182中的碼字結果(例如稱為變數節點符號值VN_sgn)即為誤差值,且將變數節點符號值VN_sgn與通道值CH_sgn相加即可得到解碼結果。
第6A-6B圖為依據本發明一實施例中快閃記憶體的存取方法的流程圖。請同時參考第2、5、6A-6B圖,快閃記憶體的資料讀取過程包括LDPC解碼過程,且LDPC解碼過程包括初始階段S610、解碼階段S620及輸出階段S630。在步驟S605,經由一儲存程序將資料儲存至資料儲存裝置200之快閃記憶體220。舉例來說,上述儲存程序例如可將主機欲儲存至資料儲存裝置200的資料經過編碼流程(例如為LDPC編碼),並將編碼後的資料寫入至快閃記憶體220。
初始階段 S610
在步驟S612,變數節點單元410從通道值記憶體2181取得從快閃記憶體220所讀取的一通道值,並將通道值傳送至檢查節點單元420以計算出徵狀值。因為是在LDPC解碼過程中的第一次疊代運算,故變數節點單元410需先將通道值旁通傳送至檢查節點單元420以計算徵狀值。
在步驟S614,變數節點單元410判斷徵狀值是否等於0?若徵狀值等於0,則直接進入輸出階段S630中的步驟S632。若徵狀值不等於0,則執行步驟S616。舉例來說,徵狀值等於0表示通道值沒有錯誤,故可直接結束初始階段S610,並進入輸出階段S630。徵狀值不等於0表示通道值有錯誤,故需進行後續的解碼階段S620。
在步驟S616,變數節點單元將更新碼字設定為0並寫入至變數節點記憶體2182。將更新碼字設定為0之用義可參考前述實施例中關於式(4)及式(5)的說明。
解碼階段 S620
在步驟S621,變數節點單元410依據徵狀值計算徵狀權重(syndrome weight)。
在步驟S622,變數節點單元410由變數節點記憶體2182取得先前碼字,並依據徵狀權重執行一位元翻轉演算法以翻轉先前碼字中之一或多個碼字位元以產生更新碼字。因為在初始階段中已將一開始的更新碼字設定0,故在此步驟中的先前碼字可視為誤差碼字,且是針對誤差樣式進行疊代運算。需注意的是,在此步驟中,變數節點單元410並不需再從通道值記憶體2181讀取通道值。
在步驟S623,變數節點單元410將更新碼字儲存至變數節點記憶體2182,並將更新碼字及先前碼字之差值Diff傳送至檢查節點單元以計算出徵狀值。類似地,此步驟中的更新碼字同樣可視為更新的誤差碼字,且是針對誤差樣式進行疊代運算。
在步驟S624,變數節點單元410判斷徵狀值是否等於0。若徵狀值等於0,則結束解碼階段S620並進入輸出階段S630的步驟S632。若徵狀值不等於0,表示仍然需要繼續進行疊代運算,故需回到步驟S621。此外,變數節點單元410於此步驟可再判斷是否已達到疊代次數的上限值。若是,則同樣結束解碼階段S620並進入輸出階段S630的步驟S632。若否且徵狀值不等於0,則回到步驟S621。
輸出階段 S630
在步驟S632,將變數節點記憶體2182所儲存的更新碼字輸出為變數節點符號值VN_sgn。
在步驟S634,解碼器215將變數節點符號值VN_sgn設定為誤差值,並將變數節點符號值與通道值相加以得到解碼結果。因為在第6圖之實施例中,在解碼階段時是針對雜訊/誤差值進行運算,故解碼階段最後得到的結果即為正確碼字所相應實際的誤差值。此外,將變數節點符號值VN_sgn與通道值CH_sgn相加即可將通道值CH_sgn中的誤差值消除以得到正確的解碼結果(即校正後的正確碼字)。
綜上所述,本發明係提出一種記憶體控制器及快閃記憶體的存取方法,其可改變在解碼器中在解碼階段之變數節點單元及檢查節點單元的資料控制流程,並可對誤差樣式進行疊代計算,故可讓在變數節點單元中所存取的碼字資料中的1之比例大幅下降,進而大幅降低資料線的切換率並降低解碼器之功耗。此外,在解碼階段中可不存取通道值記憶體的通道值,可進一步節省功耗。
本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
200:資料儲存裝置
210:記憶體控制器
211:處理單元
212:儲存單元
213:啟動程式
214:編碼器
215:解碼器
216:控制邏輯
218:緩衝記憶體
2181:通道值記憶體
2182:變數節點記憶體
220:快閃記憶體
230:主機
240:實體區塊
241:實體頁面
250、252:存取介面
261:亂數編譯器
262:亂數解譯器
410:變數節點單元
420:檢查節點單元
430、432:加法器
S605、S612-S616、S621-S624、S632-S634:步驟
S610:初始階段
S620:解碼階段
S630:輸出階段
H:同位元檢查矩陣
c:列數
t:行數
M、K、P:矩陣
K-1:反矩陣
syndrome:徵狀值
CH_sgn:通道值
Diff:碼字差值
VN_prev:先前碼字
VN_new:更新碼字
C1-C4:檢查節點
V1-V7:變數節點
第1A圖係為同位元檢查矩陣的示意圖。
第1B圖係為坦納圖(Tanner Graph)的示意圖。
第2圖為依據本發明一實施例的資料儲存裝置的方塊圖。
第3圖為查核碼檢查矩陣及查核碼產生矩陣的示意圖。
第4圖為依據本發明第一實施例中之解碼器215的方塊圖。
第5圖為依據本發明第二實施例中之解碼器215的方塊圖。
第6A-6B圖為依據本發明一實施例中之快閃記憶體的存取方法的流程圖。
200:資料儲存裝置
210:記憶體控制器
211:處理單元
212:儲存單元
213:啟動程式
214:編碼器
215:解碼器
216:控制邏輯
218:緩衝記憶體
2181:通道值記憶體
2182:變數節點記憶體
220:快閃記憶體
230:主機
240:實體區塊
241:實體頁面
250、252:存取介面
Claims (16)
- 一種記憶體控制器,其中該記憶體控制器所執行的低密度同位元檢查(low density parity check,LDPC)流程係依序包括一初始階段、一解碼階段及一輸出階段,該記憶體控制器包括: 一變數節點單元;以及 一檢查節點單元, 其中,在該解碼階段,於每次LDPC解碼疊代之期間: 該檢查節點單元係由該變數節點單元取得一碼字差值,並依據該碼字差值計算一徵狀值(syndrome); 該變數節點單元係執行: 依據來自該檢查節點單元之該徵狀值以決定一徵狀權重(syndrome weight); 從一變數節點記憶體取得一先前LDPC解碼疊代所產生的一先前碼字,而不從一通道值記憶體取得從該資料儲存裝置中之一快閃記憶體所讀取的一通道值; 依據該徵狀權重執行一位元翻轉(bit-flipping)演算法以翻動該先前碼字中之一或多個碼字位元以產生一更新碼字;以及 將該更新碼字減去該先前碼字以產生該碼字差值。
- 如申請專利範圍第1項所述的記憶體控制器,其中在該初始階段,該變數節點單元係從該通道值記憶體取得從該快閃記憶體所讀取的該通道值,並將通道值傳送至檢查節點單元以計算出該徵狀值。
- 如申請專利範圍第2項所述的記憶體控制器,其中該資料儲存裝置中之一亂數編譯器係對來自一主機的主機資料進行編譯以產生一亂數資料,且該資料儲存裝置中一LDPC編碼器係將該亂數資料進行編碼以產生對應的查核碼,並將該亂數資料及對應的該查核碼儲存於該快閃記憶體。
- 如申請專利範圍第3項所述的記憶體控制器,其中從該快閃記憶體所讀取的該通道值包括該亂數資料及對應的該查核碼。
- 如申請專利範圍第2項所述的記憶體控制器,其中在該初始階段,因應於該徵狀值不等於0,該變數節點單元係將一更新碼字設定為0並將該更新碼字寫入至該變數節點記憶體。
- 如申請專利範圍第1項所述的記憶體控制器,其中在該解碼階段中的該更新碼字及該先前碼字係分別為一更新誤差碼字及一先前誤差碼字。
- 如申請專利範圍第1項所述的記憶體控制器,其中在該解碼階段,因應於該變數節點單元判斷該徵狀值等於0或疊代次數已達到一上限值,該變數節點單元係結束該解碼階段並進入該輸出階段。
- 如申請專利範圍第7項所述的記憶體控制器,其中在該輸出階段,該LDPC解碼器係將該變數節點記憶體所儲存的該更新碼字輸出為一變數節點符號值, 其中該LDPC解碼器係將該變數節點符號值設定為一誤差值,並將該變數節點符號值與該通道值相加以得到解碼結果。
- 一種使用快閃記憶體的存取方法,應用於一資料儲存裝置中的一記憶體控制器,其中該快閃記憶體的資料讀取過程包括一低密度同位元檢查(low-density parity check,LDPC)解碼過程,且該LDPC解碼過程包括一初始階段、一解碼階段及一輸出階段,該快閃記憶體的存取方法包括: 經由一儲存程序將資料儲存至該資料儲存裝置之一快閃記憶體; 在該解碼階段,於每次LDPC解碼疊代之期間: 取得一碼字差值,並依據該碼字差值計算一徵狀值(syndrome); 依據來自該檢查節點單元之該徵狀值以決定一徵狀權重(syndrome weight); 從一變數節點記憶體取得一先前LDPC解碼疊代所產生的一先前碼字,而不從一通道值記憶體取得從該資料儲存裝置中之一快閃記憶體所讀取的一通道值; 依據該徵狀權重執行一位元翻轉(bit-flipping)演算法以翻動該先前碼字中之一或多個碼字位元以產生一更新碼字;以及 將該更新碼字減去該先前碼字以產生該碼字差值。
- 如申請專利範圍第9項所述之快閃記憶體的存取方法,更包括: 在該初始階段,從該通道值記憶體取得從該快閃記憶體所讀取的該通道值,並將通道值傳送至檢查節點單元以計算出該徵狀值。
- 如申請專利範圍第10項所述之快閃記憶體的存取方法,其中該資料儲存裝置中之一亂數編譯器係對來自一主機的主機資料進行編譯以產生一亂數資料,且該資料儲存裝置中一LDPC編碼器係將該亂數資料進行編碼以產生對應的查核碼,並將該亂數資料及對應的該查核碼儲存於該快閃記憶體。
- 如申請專利範圍第11項所述之快閃記憶體的存取方法,其中從該快閃記憶體所讀取的該通道值包括該亂數資料及對應的該查核碼。
- 如申請專利範圍第10項所述之快閃記憶體的存取方法,更包括: 在該初始階段,因應於該徵狀值不等於0,將一更新碼字設定為0並將該更新碼字寫入至該變數節點記憶體。
- 如申請專利範圍第10項所述之快閃記憶體的存取方法,其中在該解碼階段中的該更新碼字及該先前碼字係分別為一更新誤差碼字及一先前誤差碼字。
- 如申請專利範圍第10項所述之快閃記憶體的存取方法,其中在該解碼階段,因應於該徵狀值等於0或疊代次數已達到一上限值,結束該解碼階段並進入該輸出階段。
- 如申請專利範圍第15項所述之快閃記憶體的存取方法,更包括: 在該輸出階段,執行下列步驟: 將該變數節點記憶體所儲存的該更新碼字輸出為一變數節點符號值;以及 將該變數節點符號值設定為一誤差值,並將該變數節點符號值與該通道值相加以得到解碼結果。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109101189A TWI697907B (zh) | 2020-01-14 | 2020-01-14 | 記憶體控制器及快閃記憶體的存取方法 |
CN202010181161.0A CN113190375B (zh) | 2020-01-14 | 2020-03-16 | 存储器控制器及快闪存储器的存取方法 |
US16/835,939 US10892776B1 (en) | 2020-01-14 | 2020-03-31 | Memory controller and method of accessing flash memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109101189A TWI697907B (zh) | 2020-01-14 | 2020-01-14 | 記憶體控制器及快閃記憶體的存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI697907B true TWI697907B (zh) | 2020-07-01 |
TW202127460A TW202127460A (zh) | 2021-07-16 |
Family
ID=72602021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109101189A TWI697907B (zh) | 2020-01-14 | 2020-01-14 | 記憶體控制器及快閃記憶體的存取方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10892776B1 (zh) |
CN (1) | CN113190375B (zh) |
TW (1) | TWI697907B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI790971B (zh) * | 2022-05-23 | 2023-01-21 | 信驊科技股份有限公司 | 積體電路及其操作方法與檢查方法 |
TWI836558B (zh) * | 2022-08-18 | 2024-03-21 | 慧榮科技股份有限公司 | 記憶體控制器及解碼管線之資料控制方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102588969B1 (ko) * | 2019-03-19 | 2023-10-16 | 에스케이하이닉스 주식회사 | 오류 정정 디코더 및 이를 포함하는 메모리 시스템 |
US11262937B2 (en) * | 2020-05-01 | 2022-03-01 | Micron Technology, Inc. | Balancing data for storage in a memory device |
JP2023040796A (ja) * | 2021-09-10 | 2023-03-23 | キオクシア株式会社 | メモリシステム |
TWI831333B (zh) * | 2022-08-18 | 2024-02-01 | 慧榮科技股份有限公司 | 記憶體控制器及快閃記憶體的存取方法 |
CN116662063B (zh) * | 2023-05-10 | 2024-02-23 | 珠海妙存科技有限公司 | 一种闪存的纠错配置方法、纠错方法、系统、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200926615A (en) * | 2007-08-06 | 2009-06-16 | Broadcom Corp | Multi-code LDPC (low density parity check) decoder |
TW201322646A (zh) * | 2011-07-31 | 2013-06-01 | Sandisk Technologies Inc | 具有減少的記憶體與功率需求之錯誤校正解碼 |
CN106160753A (zh) * | 2016-06-23 | 2016-11-23 | 湖南大学 | 一种适用于ssd的权值多比特翻转ldpc译码方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8386904B2 (en) * | 2009-04-29 | 2013-02-26 | Adeptence, Llc | High speed low density parity check codes encoding and decoding |
US9036608B2 (en) * | 2012-11-09 | 2015-05-19 | Telefonaktiebolaget L M Ericsson (Publ) | Adaptive transmission mode switching |
US10089177B2 (en) * | 2014-06-30 | 2018-10-02 | Sandisk Technologies Llc | Multi-stage decoder |
US10707902B2 (en) * | 2015-11-05 | 2020-07-07 | Shenzhen Epostar Electronics Limited Co. | Permutation network designing method, and permutation circuit of QC-LDPC decoder |
US9806743B2 (en) * | 2015-11-16 | 2017-10-31 | Mitsubishi Electric Research Laboratories, Inc. | System and method of belief propagation decoding |
US10447302B2 (en) * | 2017-09-25 | 2019-10-15 | SK Hynix Inc. | Memory system decoding design and operating method thereof |
-
2020
- 2020-01-14 TW TW109101189A patent/TWI697907B/zh active
- 2020-03-16 CN CN202010181161.0A patent/CN113190375B/zh active Active
- 2020-03-31 US US16/835,939 patent/US10892776B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200926615A (en) * | 2007-08-06 | 2009-06-16 | Broadcom Corp | Multi-code LDPC (low density parity check) decoder |
TW201322646A (zh) * | 2011-07-31 | 2013-06-01 | Sandisk Technologies Inc | 具有減少的記憶體與功率需求之錯誤校正解碼 |
CN106160753A (zh) * | 2016-06-23 | 2016-11-23 | 湖南大学 | 一种适用于ssd的权值多比特翻转ldpc译码方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI790971B (zh) * | 2022-05-23 | 2023-01-21 | 信驊科技股份有限公司 | 積體電路及其操作方法與檢查方法 |
TWI836558B (zh) * | 2022-08-18 | 2024-03-21 | 慧榮科技股份有限公司 | 記憶體控制器及解碼管線之資料控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US10892776B1 (en) | 2021-01-12 |
CN113190375B (zh) | 2023-09-26 |
TW202127460A (zh) | 2021-07-16 |
CN113190375A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI697907B (zh) | 記憶體控制器及快閃記憶體的存取方法 | |
TWI697000B (zh) | 記憶體控制器及快閃記憶體的存取方法 | |
US9529666B2 (en) | Decoding method, memory storage device and memory controlling circuit unit | |
TWI705452B (zh) | 具有硬通道資訊的位元翻轉ldpc解碼演算法 | |
US10484008B2 (en) | Memory system with on-the-fly error detection and termination and operating method thereof | |
US10067824B2 (en) | Error processing method, memory storage device and memory controlling circuit unit | |
US9973213B2 (en) | Decoding method, and memory storage apparatus and memory control circuit unit using the same | |
TWI612527B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201944738A (zh) | 解碼方法及儲存控制器 | |
US9274891B2 (en) | Decoding method, memory storage device, and memory controlling circuit unit | |
US9553608B2 (en) | Data storage device decoder and method of operation | |
US10193569B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US11095310B2 (en) | Error correction apparatus, operation method thereof and memory system using the same | |
TWI718060B (zh) | 記憶體控制器及快閃記憶體的存取方法 | |
TW202013192A (zh) | 解碼器設計方法與儲存控制器 | |
US10050643B2 (en) | Low-density parity-check apparatus and operation method thereof | |
TWI831333B (zh) | 記憶體控制器及快閃記憶體的存取方法 | |
TWI836558B (zh) | 記憶體控制器及解碼管線之資料控制方法 | |
TWI812411B (zh) | 記憶體控制器及低密度同位元查核碼之位元翻轉方法 | |
CN110391815B (zh) | 解码方法及储存控制器 | |
CN117472643A (zh) | 低密度奇偶校检码的译码方法、存储介质和装置 |