TWI759672B - Decoding method and associated flash memory controller and electronic device - Google Patents
Decoding method and associated flash memory controller and electronic device Download PDFInfo
- Publication number
- TWI759672B TWI759672B TW109100005A TW109100005A TWI759672B TW I759672 B TWI759672 B TW I759672B TW 109100005 A TW109100005 A TW 109100005A TW 109100005 A TW109100005 A TW 109100005A TW I759672 B TWI759672 B TW I759672B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- codeword
- parity check
- check matrix
- flash memory
- Prior art date
Links
Images
Abstract
Description
本發明係有關於解碼方法,尤指一種應用在快閃記憶體控制器的解碼方法。The present invention relates to a decoding method, especially a decoding method applied to a flash memory controller.
在目前應用在快閃記憶體控制器的解碼方法中,當快閃記憶體控制器從一快閃記憶體模組讀取一碼字(codeword)之後,會將該碼字與一奇偶校驗矩陣(parity check matrix)相乘來進行解碼操作。具體來說,理論上該碼字與該奇偶校驗矩陣相乘之後應該會得到一個全部數值均為0的矩陣,因此,若是相乘的結果不全為0,則需要透過一些演算法來調整該碼字的內容直到調整後碼字與該奇偶校驗矩陣相乘後為0,以完成解碼操作。然而,上述的解碼操作通常會需要較高的平行運算,因此增加了硬體成本。In the current decoding method applied to the flash memory controller, after the flash memory controller reads a codeword from a flash memory module, the codeword is checked with a parity check. The matrix (parity check matrix) is multiplied to perform the decoding operation. Specifically, theoretically, after multiplying the codeword and the parity check matrix, a matrix with all values of 0 should be obtained. Therefore, if the multiplication result is not all 0, it needs to be adjusted through some algorithms. The content of the codeword is 0 until the adjusted codeword is multiplied by the parity check matrix to complete the decoding operation. However, the above-mentioned decoding operation usually requires high parallel operation, thus increasing the hardware cost.
因此,本發明的目的之一在於提出一種應用在快閃記憶體控制器中的解碼方法,其可以使用較低的平行運算來有效地完成解碼操作,以解決先前技術中的問題。Therefore, one of the objectives of the present invention is to provide a decoding method applied in a flash memory controller, which can efficiently complete the decoding operation with low parallel operation, so as to solve the problems in the prior art.
在本發明的一個實施例中,揭露一種解碼方法,其包含有:自一快閃記憶體模組中讀取一碼字;以及使用一奇偶校驗矩陣來對該碼字進行解碼,其中該奇偶校驗矩陣中的每一層包含了N個循環排列矩陣,且該解碼操作包含以下步驟:針對該N個群組中的任一群組,依序將該群組的M個部分分別與所對應之循環排列矩陣的M個部分相乘,以得到M個處理後資料;將該M個處理後資料儲存至一記憶體中之一區塊的M個不同位址中;自該N個區塊之每一個區塊讀取兩筆處理後資料,並組合後產生一第一資料以及一剩餘資料,其中該第一資料為用來計算對應到該碼字與該奇偶校驗矩陣相乘後之第一列資料的一第一部份,其中N、M為大於一的正整數,且該剩餘資料為該兩筆處理後資料扣除該第一資料後的內容;對該第一資料進行平行運算並進行解碼,其中該平行運算的階數小於任一循環排列矩陣的列數量。In one embodiment of the present invention, a decoding method is disclosed, which includes: reading a codeword from a flash memory module; and decoding the codeword using a parity check matrix, wherein the Each layer in the parity check matrix includes N cyclic permutation matrices, and the decoding operation includes the following steps: for any group in the N groups, sequentially correspond to the M parts of the group with the corresponding Multiplying the M parts of the circular array matrix to obtain M processed data; storing the M processed data in M different addresses of a block in a memory; from the N blocks Each block reads two pieces of processed data, and combines them to generate a first data and a residual data, wherein the first data is used to calculate the first data corresponding to the multiplication of the codeword and the parity check matrix. A first part of a row of data, wherein N and M are positive integers greater than one, and the remaining data is the content after deducting the first data from the two processed data; perform parallel operations on the first data and Decoding is performed, wherein the order of the parallel operation is less than the number of columns of any circular permutation matrix.
在本發明的另一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有一唯讀記憶體、一微處理器以及一解碼器。該唯讀記憶體係用來儲存一程式碼;該微處理器係用來執行該程式碼以控制對該快閃記憶體模組之存取;以及在該快閃記憶體控制器的操作中,該微處理器自該快閃記憶體模組中讀取一碼字,且該解碼器使用一奇偶校驗矩陣來對該碼字進行解碼,其中該奇偶校驗矩陣中的每一層包含了N個循環排列矩陣,且該微處理器使用以下步驟來進行解碼操作:針對該N個群組中的任一群組,依序將該群組的M個部分分別與所對應之循環排列矩陣的M個部分相乘,以得到M個處理後資料;將該M個處理後資料儲存至一記憶體中之一區塊的M個不同位址中;自該N個區塊之每一個區塊讀取兩筆處理後資料,並組合後產生一第一資料以及一剩餘資料,其中該第一資料為用來計算對應到該碼字與該奇偶校驗矩陣相乘後之第一列資料的一第一部份,其中N、M為大於一的正整數,且該剩餘資料為該兩筆處理後資料扣除該第一資料後的內容;對該第一資料進行平行運算並進行解碼,其中該平行運算的階數小於任一循環排列矩陣的列數量。In another embodiment of the present invention, a flash memory controller is disclosed, wherein the flash memory controller is used to access a flash memory module, and the flash memory controller includes There is a ROM, a microprocessor and a decoder. The ROM system is used to store a code; the microprocessor is used to execute the code to control access to the flash memory module; and in operation of the flash memory controller, The microprocessor reads a codeword from the flash memory module, and the decoder decodes the codeword using a parity check matrix, wherein each layer of the parity check matrix includes N Circular arrangement matrices, and the microprocessor performs the decoding operation using the following steps: for any group in the N groups, sequentially, respectively, the M parts of the group and the corresponding M circulant arrangement matrices Partially multiply to obtain M processed data; store the M processed data in M different addresses of a block in a memory; read from each of the N blocks Two pieces of processed data are combined to generate a first data and a residual data, wherein the first data is used to calculate a first data corresponding to the first column of data after the codeword and the parity check matrix are multiplied. A part, wherein N and M are positive integers greater than one, and the remaining data is the content after deducting the first data from the two processed data; perform parallel operation and decoding on the first data, wherein the parallel The order of the operation is less than the number of columns of any circular array.
在本發明的另一個實施例中,揭露了一種電子裝置,其包含有一快閃記憶體模組以及一快閃記憶體控制器。在該電子裝置的操作中,該快閃記憶體控制器自該快閃記憶體模組中讀取一碼字,且該快閃記憶體控制器使用一奇偶校驗矩陣來對該碼字進行解碼,其中該奇偶校驗矩陣中的每一層包含了N個循環排列矩陣,且該快閃記憶體控制器使用以下步驟來進行解碼操作:針對該N個群組中的任一群組,依序將該群組的M個部分分別與所對應之循環排列矩陣的M個部分相乘,以得到M個處理後資料;將該M個處理後資料儲存至一記憶體中之一區塊的M個不同位址中;自該N個區塊之每一個區塊讀取兩筆處理後資料,並組合後產生一第一資料以及一剩餘資料,其中該第一資料為用來計算對應到該碼字與該奇偶校驗矩陣相乘後之第一列資料的一第一部份,其中N、M為大於一的正整數,且該剩餘資料為該兩筆處理後資料扣除該第一資料後的內容;對該第一資料進行平行運算並進行解碼,其中該平行運算的階數小於任一循環排列矩陣的列數量。In another embodiment of the present invention, an electronic device is disclosed, which includes a flash memory module and a flash memory controller. In operation of the electronic device, the flash memory controller reads a codeword from the flash memory module, and the flash memory controller uses a parity check matrix to process the codeword decoding, wherein each layer in the parity check matrix includes N cyclic array matrices, and the flash memory controller uses the following steps to perform the decoding operation: for any group in the N groups, sequentially The M parts of the group are respectively multiplied by the M parts of the corresponding cyclic array matrix to obtain M processed data; the M processed data are stored in M parts of a block in a memory In different addresses; read two pieces of processed data from each of the N blocks, and combine them to generate a first data and a residual data, wherein the first data is used to calculate the code corresponding to the code A first part of the data in the first column after the word is multiplied by the parity check matrix, wherein N and M are positive integers greater than one, and the remaining data is the two processed data after deducting the first data content; perform parallel operation and decoding on the first data, wherein the order of the parallel operation is less than the number of columns of any cyclic array matrix.
請參考第1圖,第1圖為依據本發明一實施例之一種記憶裝置100的示意圖。記憶裝置100包含有一快閃記憶體(Flash Memory)模組120以及一快閃記憶體控制器110,且快閃記憶體控制器110用來存取快閃記憶體模組120。依據本實施例,快閃記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory, ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體模組120之存取(Access)。控制邏輯114包含了一編碼器132、一解碼器134、一第一記憶體136以及一第二記憶體138。在本實施例中,編碼器132與解碼器134係用來進行準循環低密度奇偶校檢(Quasi-Cyclic Low Density Party-Check,QC-LDPC)碼的編解碼操作。Please refer to FIG. 1. FIG. 1 is a schematic diagram of a
於典型狀況下,快閃記憶體模組120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個區塊(Block),而該控制器(例如:透過微處理器112執行程式碼112C之快閃記憶體控制器110)對快閃記憶體模組120進行抹除等運作係以區塊為單位來進行。另外,一區塊可記錄特定數量的資料頁(Page),其中該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體模組120進行寫入資料之運作係以資料頁為單位來進行寫入。在本實施例中,快閃記憶體模組120為一立體NAND型快閃記憶體(3D NAND-type flash)。Typically, the
實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)130溝通。緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM, SRAM),但本發明不限於此。In practice, the
在一實施例中,記憶裝置100可以是可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主裝置130為一可與記憶裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等。而在另一實施例中,記憶裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是該電子裝置的一處理器。In one embodiment, the
在快閃記憶體控制器110存取快閃記憶體模組120的過程中,當快閃記憶體控制器110需要將一資料寫入至快閃記憶體模組120時,編碼器132會將該資料與一生成矩陣(generator matrix)相乘以得到一編碼後資料,並將該編碼後資料寫入至快閃記憶體模組120,其中該編碼後資料包含了該資料以及所對應的校驗碼。另一方面,當快閃記憶體控制器110需要自快閃記憶體模組120讀取該資料時,解碼器134會自快閃記憶體模組120讀取該編碼後資料,並將該編碼後資料與一奇偶校驗矩陣(parity check matrix)相乘來進行解碼。在一實施例中,該奇偶校驗矩陣與該生成矩陣互相關聯,且該生成矩陣與該奇偶校驗矩陣的轉置矩陣相乘之後會為會得到一個全部數值均為0的矩陣,因此,由於該編碼後資料在寫入至快閃記憶體模組120的過程中可能會因為電壓漂移或是其他因素而使得部分內容發生錯誤,故解碼器134透過不斷調整所讀取之該編碼後資料,以使得調整後的該編碼後資料與該奇偶校驗矩陣相乘之後可以得到一個全部數值均為0的矩陣,以完成錯誤更正以及解碼操作。由於本發明係著重在解碼操作的部分,故以下敘述僅針對解碼器134的部分來進行描述。During the process of accessing the
參考第2圖,其繪示了根據本發明一實施例之自快閃記憶體模組120所讀取之一碼字以及奇偶校驗矩陣H的示意圖。如第2圖所示,奇偶校驗矩陣H由多個循環排列矩陣(circulant permutation matrix)所構成,而在本實施例中係以8個循環排列矩陣為例來做後續的說明,但這並非是本發明的限制。每一個循環排列矩陣的大小為64*64,且每一列只有一個數值為“1”,其餘的數值均為“0”,下一列的內容為上一列向右移動1位元所產生,且圖示中括號內的內容為第1列中數值為“1”的位址。以第2圖所示之奇偶校驗矩陣H的第一層(layer)為例,循環排列矩陣CM0之第1列的第27個位元為“1”其餘為“0”、第2列的第28個位元為“1” 其餘為“0”、第3列的第29個位元為“1” 其餘為“0”…以此類推;循環排列矩陣CM1之第1列的第3個位元為“1”其餘為“0”、第2列的第4個位元為“1” 其餘為“0”、第3列的第5個位元為“1” 其餘為“0”…以此類推;循環排列矩陣CM2之第1列的第55個位元為“1”其餘為“0”、第2列的第56個位元為“1” 其餘為“0”、第3列的第57個位元為“1” 其餘為“0”…以此類推;循環排列矩陣CM3之第1列的第12個位元為“1”其餘為“0”、第2列的第13個位元為“1” 其餘為“0”、第3列的第14個位元為“1” 其餘為“0”…以此類推。Referring to FIG. 2 , it is a schematic diagram of a codeword and a parity check matrix H read from the
在本實施例中,自快閃記憶體模組120所讀取之碼字為256位元,且解碼器134會將碼字分割為4個群組CW0~CW3,其中每個群組CW0~CW3為64位元,並將群組CW0~CW3分別與奇偶校驗矩陣H的循環排列矩陣CM0~CM3相乘來進行解碼,在本實施例中,上述矩陣操作可視為將128*256的奇偶校驗矩陣H與256*1的碼字相乘以產生一128*1的矩陣相乘結果。In this embodiment, the codeword read from the
然而,在上述的運算中,若是直接將群組CW0~CW3分別與循環排列矩陣CM0~CM3相乘來進行後續的解碼,則解碼器134會需要進行階數為64的平行運算,因此會需要較多的電路以及記憶體面積,因此,在本發明之以下的實施例中,係透過特殊的記憶體存取及碼字處理方式來完成階數為16的平行運算,以進一步節省電路以及記憶體面積。However, in the above operation, if the groups CW0 to CW3 are directly multiplied by the circular array matrices CM0 to CM3 for subsequent decoding, the
參考第3圖,每一個群組CW0~CW3再細分為4個部分,其中群組CW0包含了4個部分CW0[0]~CW0[3]、群組CW1包含了4個部分CW1[0]~CW1[3]、群組CW2包含了4個部分CW2[0]~CW2[3]、以及群組CW3包含了4個部分CW3[0]~CW3[3],其中每一個部分均為16位元。接著,解碼器134將群組CW0~CW3與分別與循環排列矩陣CM0~CM3相乘,以得到16筆處理後資料,並儲存至第一記憶體136的16個不同的位址中(例如,對應到16個不同的字元線)。具體來說,第3圖的第一子層SL0包含了4筆處理後資料,其分別為CW0[0]、CW1[0]、CW2[0]、CW3[0]分別於循環排列矩陣CM0~CM3的第一部分相乘的結果,其中CW0[0]與循環排列矩陣CM0相乘所產生的處理後資料係儲存在第一記憶體136的第2~3個位址、CW1[0]與循環排列矩陣CM1相乘所產生的處理後資料係儲存在第一記憶體136的第5~6個位址、CW2[0]與循環排列矩陣CM2相乘所產生的處理後資料係儲存在第一記憶體136的第9、12個位址、以及CW3[0]與循環排列矩陣CM3相乘所產生的處理後資料係儲存在第一記憶體136的第13~14個位址;第3圖的第二子層SL1包含了4筆處理後資料,其分別為CW0[1]、CW1[1]、CW2[1]、CW3[1]分別於循環排列矩陣CM0~CM3的第二部分相乘的結果,其中CW0[1]與循環排列矩陣CM0相乘所產生的處理後資料係儲存在第一記憶體136的第3~4個位址、CW1[1]與循環排列矩陣CM1相乘所產生的處理後資料係儲存在第一記憶體136的第6~7個位址、CW2[1]與循環排列矩陣CM2相乘所產生的處理後資料係儲存在第一記憶體136的第9~10個位址、以及CW3[1]與循環排列矩陣CM3相乘所產生的處理後資料係儲存在第一記憶體136的第14~15個位址;第3圖的第三子層SL2包含了4筆處理後資料,其分別為CW0[2]、CW1[2]、CW2[2]、CW3[2]分別於循環排列矩陣CM0~CM3的第三部分相乘的結果,其中CW0[2]與循環排列矩陣CM0相乘所產生的處理後資料係儲存在第一記憶體136的第1、4個位址、CW1[2]與循環排列矩陣CM1相乘所產生的處理後資料係儲存在第一記憶體136的第7~8個位址、CW2[2]與循環排列矩陣CM2相乘所產生的處理後資料係儲存在第一記憶體136的第10~11個位址、以及CW3[2]與循環排列矩陣CM3相乘所產生的處理後資料係儲存在第一記憶體136的第15~16個位址;第3圖的第四子層SL3包含了4筆處理後資料,其分別為CW0[3]、CW1[3]、CW2[3]、CW3[3]分別於循環排列矩陣CM0~CM3的第四部分相乘的結果,其中CW0[3]與循環排列矩陣CM0相乘所產生的處理後資料係儲存在第一記憶體136的第1~2個位址、CW1[3]與循環排列矩陣CM1相乘所產生的處理後資料係儲存在第一記憶體136的第5、8個位址、CW2[3]與循環排列矩陣CM2相乘所產生的處理後資料係儲存在第一記憶體136的第11~12個位址、以及CW3[3]與循環排列矩陣CM3相乘所產生的處理後資料係儲存在第一記憶體136的第13、16個位址。Referring to Figure 3, each group CW0~CW3 is subdivided into 4 parts, of which group CW0 includes 4 parts CW0[0]~CW0[3], and group CW1 includes 4 parts CW1[0] ~CW1[3], group CW2 contains 4 sections CW2[0]~CW2[3], and group CW3 contains 4 sections CW3[0]~CW3[3], each of which is 16 bits. Next, the
第4~8圖所示為根據本發明一實施例之解碼器134對儲存在第一記憶體136中的多筆處理後資料進行操作的示意圖。在第4圖中,首先,第一記憶體136可以分為四個部分,其中該四個部分分別包含了第1~4個位址、第5~8個位址、第9~12個位址以及第13~16個位址(亦即,分別對應到循環排列矩陣CM0~CM3)。解碼器134會先自第一記憶體136的每一個部分取出第一筆有關於第一子層SL0的內容,亦即從第4圖所示之第一記憶體136的第2、5、12、13個位址取出第一筆有關於第一子層SL0的內容。接著,解碼器134將自第一記憶體136所取出的內容進行翻轉,並將翻轉後的內容儲存至第二記憶體138的四個不同的位址中。FIGS. 4-8 are schematic diagrams illustrating operations performed by the
接著,在第5圖中,解碼器134會先自第一記憶體136的每一個部分取出第一筆有關於第二子層SL1的內容,亦即從第5圖所示之第一記憶體136的第3、6、9、14個位址取出第一筆有關於第二子層SL1的內容,並將自第一記憶體136所取出的內容進行翻轉;同時地,解碼器134也自第二記憶體138讀取先前在第4圖中所儲存的內容,並連同自第一記憶體136所取出並進行翻轉後的內容進行多工操作(組合操作),以產生一個完整第一子層SL0的內容以供後續進行階數為16的平行運算(圖示的每一列為16位元),且也產生一個由第二子層SL1與第四子層SL3所構成的64位元內容的剩餘資料,並儲存至第二記憶體138的四個不同的位址中。在本實施例中,第一子層SL0可以視為用來計算對應到該碼字(包含CW0~CW3)與奇偶校驗矩陣H相乘後之第一列(row)資料的一第一部份。Next, in FIG. 5 , the
接著,在第6圖中,解碼器134會先自第一記憶體136的每一個部分取出第一筆有關於第三子層SL2的內容,亦即從第6圖所示之第一記憶體136的第4、7、10、15個位址取出第一筆有關於第三子層SL2的內容,並將自第一記憶體136所取出的內容進行翻轉;同時地,解碼器134也自第二記憶體138讀取先前在第5圖中所儲存的內容,並連同自第一記憶體136所取出並進行翻轉後的內容進行多工操作(組合操作),以產生一個完整第二子層SL1的內容以供後續進行階數為16的平行運算,且也產生一個由第三子層SL2與第四子層SL3所構成的64位元內容的剩餘資料,並儲存至第二記憶體138的四個不同的位址中。在本實施例中,第二子層SL1可以視為用來計算對應到該碼字(包含CW0~CW3)與奇偶校驗矩陣H相乘後之第一列資料的一第二部份。Next, in FIG. 6 , the
接著,在第7圖中,解碼器134會先自第一記憶體136的每一個部分取出第一筆有關於第四子層SL3的內容,亦即從第7圖所示之第一記憶體136的第1、8、11、16個位址取出第一筆有關於第四子層SL3的內容,並將自第一記憶體136所取出的內容進行翻轉;同時地,解碼器134也自第二記憶體138讀取先前在第6圖中所儲存的內容,並連同自第一記憶體136所取出並進行翻轉後的內容進行多工操作(組合操作),以產生一個完整第三子層SL2的內容以供後續進行階數為16的平行運算,且也產生一個完全由第四子層SL3所構成的64位元內容的剩餘資料,並儲存至第二記憶體138的四個不同的位址中。在本實施例中,第三子層SL2可以視為用來計算對應到該碼字(包含CW0~CW3)與奇偶校驗矩陣H相乘後之第一列資料的一第三部份。Next, in FIG. 7 , the
接著,在第8圖中,解碼器134直接自第二記憶體138讀取先前在第7圖中所儲存之完全由第四子層SL3所構成的64位元內容,並進行階數為16的平行運算。在本實施例中,第四子層SL3可以視為用來計算對應到該碼字(包含CW0~CW3)與奇偶校驗矩陣H相乘後之第一列資料的一第四部份。上述平行運算係用來對該些資料進行最小總和解碼(min-sum decoding)操作,由於解碼器134進行準循環低密度奇偶校檢(QC-LDPC)碼的解碼方式以及相關的平行運算細節已為本領域具有通常知識者所熟知,故細節在此不予贅述。Next, in FIG. 8 , the
透過以上實施例所揭露的內容,可以讓解碼器134在僅使用階數為16的平行運算便可完成相關的解碼操作,因此解碼器134內部的電路元件,例如桶式移位器(barrel shifter)在設計上也比較簡單,以節省硬體成本。另一方面,由於本實施例之第一記憶體136所儲存的每一筆資料均為16位元,因此在記憶體架構上可以設計為具有較深的深度,因此可以在儲存容量不變的情形下更加節省記憶體的晶片面積。Through the content disclosed in the above embodiments, the
此外,在本發明的另一個實施例中,第5~8圖中所產生之完整第一子層SL0至第四子層SL3的內容可以再立刻回存至第一記憶體136中。具體來說,在第5圖中,由於先前第一記憶體136中第2、5、12、13個位址的資料已經被取出了,故解碼器136可以將所產生的完整第一子層SL0的內容回存至第一記憶體136中第2、5、12、13個位址中,以供後續使用;同理,在第6圖中,由於先前第一記憶體136中第3、6、9、14個位址的資料已經被取出了,故解碼器136可以將所產生的完整第二子層SL0的內容回存至第一記憶體136中第3、6、9、14個位址中,以供後續使用…以此類推。In addition, in another embodiment of the present invention, the contents of the complete first sub-layer SL0 to the fourth sub-layer SL3 generated in FIGS. 5 to 8 can be immediately restored to the
簡要歸納本發明,在本發明之應用在快閃記憶體控制器中的解碼方法中,其可以透過記憶體的配置來使用較低階數的平行運算來有效地完成解碼操作,且由於採用了較低階數的平行運算,可以降低解碼器之內部電路元件的複雜度,且也可以在儲存容量不變的情形下節省記憶體的晶片面積。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。Summarizing the present invention briefly, in the decoding method of the present invention applied in a flash memory controller, the decoding operation can be efficiently completed by using a lower order parallel operation through the configuration of the memory, and since the The lower-order parallel operation can reduce the complexity of the internal circuit elements of the decoder, and can also save the chip area of the memory under the condition that the storage capacity remains unchanged. The above descriptions are only preferred embodiments of the present invention, and all equivalent changes and modifications made according to the scope of the patent application of the present invention shall fall within the scope of the present invention.
100:記憶裝置
110:快閃記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:快閃記憶體模組
130:主裝置
132:編碼器
134:解碼器
136:第一記憶體
138:第二記憶體
H:奇偶校驗矩陣
CM0~CM3:循環排列矩陣
CW0~CW3:碼字群組
SL0:第一子層
SL1:第二子層
SL2:第三子層
SL3:第四子層100: Memory Device
110: Flash memory controller
112:
第1圖為依據本發明一實施例之一種記憶裝置的示意圖。 第2圖為根據本發明一實施例之自快閃記憶體模組所讀取之一碼字以及奇偶校驗矩陣的示意圖。 第3圖為根據本發明一實施例之每一個群組CW0~CW3以及儲存在第一記憶體之每一個子層SL0~SL1的示意圖。 第4~8圖所示為根據本發明一實施例之解碼器對儲存在第一記憶體中的多筆處理後資料進行操作的示意圖。FIG. 1 is a schematic diagram of a memory device according to an embodiment of the present invention. FIG. 2 is a schematic diagram of a codeword and a parity check matrix read from a flash memory module according to an embodiment of the present invention. FIG. 3 is a schematic diagram of each group CW0-CW3 and each sub-layer SL0-SL1 stored in the first memory according to an embodiment of the present invention. FIGS. 4 to 8 are schematic diagrams illustrating operations performed by a decoder according to an embodiment of the present invention on multiple pieces of processed data stored in the first memory.
100:記憶裝置 100: Memory Device
110:快閃記憶體控制器 110: Flash memory controller
112:微處理器 112: Microprocessor
112C:程式碼 112C: Code
112M:唯讀記憶體 112M: read-only memory
114:控制邏輯 114: Control logic
116:緩衝記憶體 116: Buffer memory
118:介面邏輯 118: Interface logic
120:快閃記憶體模組 120: Flash memory module
130:主裝置 130: Main unit
132:編碼器 132: Encoder
134:解碼器 134: decoder
136:第一記憶體 136: first memory
138:第二記憶體 138:Second memory
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109100005A TWI759672B (en) | 2018-04-20 | 2018-04-20 | Decoding method and associated flash memory controller and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109100005A TWI759672B (en) | 2018-04-20 | 2018-04-20 | Decoding method and associated flash memory controller and electronic device |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202014889A TW202014889A (en) | 2020-04-16 |
TWI759672B true TWI759672B (en) | 2022-04-01 |
Family
ID=71130578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109100005A TWI759672B (en) | 2018-04-20 | 2018-04-20 | Decoding method and associated flash memory controller and electronic device |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI759672B (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI284460B (en) * | 2001-06-15 | 2007-07-21 | Qualcomm Flarion Tech | Methods and apparatus for decoding LDPC codes |
TW200739334A (en) * | 2006-01-20 | 2007-10-16 | Marvell World Trade Ltd | Flash memory with coding and signal processing |
US20100275089A1 (en) * | 2009-04-27 | 2010-10-28 | The Hong Kong University Of Science And Technology | Iterative decoding of punctured low-density parity check codes by selection of decoding matrices |
-
2018
- 2018-04-20 TW TW109100005A patent/TWI759672B/en active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI284460B (en) * | 2001-06-15 | 2007-07-21 | Qualcomm Flarion Tech | Methods and apparatus for decoding LDPC codes |
TW200739334A (en) * | 2006-01-20 | 2007-10-16 | Marvell World Trade Ltd | Flash memory with coding and signal processing |
US20100275089A1 (en) * | 2009-04-27 | 2010-10-28 | The Hong Kong University Of Science And Technology | Iterative decoding of punctured low-density parity check codes by selection of decoding matrices |
Also Published As
Publication number | Publication date |
---|---|
TW202014889A (en) | 2020-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422885B2 (en) | Tiered error correction code (ECC) operations in memory | |
US8812942B2 (en) | Interleaving apparatuses and memory controllers having the same | |
US11050438B2 (en) | Memory controller | |
CN110858128B (en) | Data storage device and method for sharing memory in controller | |
KR20100124087A (en) | Memory controller, memory system including the same and method of operating the same | |
CN113064547B (en) | Data access method and device for protection of check matrix with local sequence information | |
KR20160090054A (en) | Flash memory system and operating method thereof | |
US10484014B2 (en) | Controller, semiconductor memory system and operating method thereof | |
TWI536749B (en) | Decoding method, memory storage device and memory controlling circuit unit | |
US9268629B2 (en) | Dual mapping between program states and data patterns | |
US11082068B2 (en) | Error correction circuit, memory controller having error correction circuit, and memory system having memory controller | |
CN108665940B (en) | ECC encoding circuit, decoding circuit and memory controller | |
TWI759672B (en) | Decoding method and associated flash memory controller and electronic device | |
TWI651730B (en) | Method for performing data management in memory device, and associated memory device and controller thereof | |
TWI684856B (en) | Decoding method and associated flash memory controller and electronic device | |
US10855316B2 (en) | Error correction code (ECC) operations in memory | |
KR101679495B1 (en) | Mapping between program states and data patterns | |
KR20220049856A (en) | Memory system and contrller | |
US20160364292A1 (en) | Efficient encoder based on modified ru algorithm | |
TWI677878B (en) | Encoder and associated encoding method and flash memory controller | |
US20220284978A1 (en) | Memory controller and method of operating the same | |
TWI711279B (en) | Encoder and associated encoding method and flash memory controller | |
TWI782341B (en) | Flash memory controller and encoding circuit within flash memory controller | |
TW202401250A (en) | Encoder and associated flash memory controller |