TWI711279B - 編碼器及相關的編碼方法與快閃記憶體控制器 - Google Patents

編碼器及相關的編碼方法與快閃記憶體控制器 Download PDF

Info

Publication number
TWI711279B
TWI711279B TW108137044A TW108137044A TWI711279B TW I711279 B TWI711279 B TW I711279B TW 108137044 A TW108137044 A TW 108137044A TW 108137044 A TW108137044 A TW 108137044A TW I711279 B TWI711279 B TW I711279B
Authority
TW
Taiwan
Prior art keywords
check code
blocks
block
inverse matrix
matrix
Prior art date
Application number
TW108137044A
Other languages
English (en)
Other versions
TW202015347A (zh
Inventor
郭軒豪
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW108137044A priority Critical patent/TWI711279B/zh
Publication of TW202015347A publication Critical patent/TW202015347A/zh
Application granted granted Critical
Publication of TWI711279B publication Critical patent/TWI711279B/zh

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本發明揭露一種設置在一快閃記憶體控制器中的編碼器,其包含有桶式移位器模組、反矩陣計算電路以及計算電路,其中該桶式移位器模組將多個資料區塊進行處理以產生包含第一部分、第二部分以及第三部分的多個局部校驗碼區塊;該反矩陣計算電路用以對該第一部分進行反矩陣運算以產生第一部分的校驗碼區塊;以及該計算電路用以根據該第一部分的校驗碼區塊來對該第二部分以及該第三部分進行反矩陣運算,以產生第二、第三部分的校驗碼區塊;其中該第一、第二、第三部分的校驗碼區塊係作為該編碼器針對該多個資料區塊所產生之多個校驗碼區塊。

Description

編碼器及相關的編碼方法與快閃記憶體控制器
本發明係有關於編碼器,尤指一種應用在快閃記憶體控制器中的編碼器。
在一般的編碼器中,會具有一個校驗碼檢查矩陣(parity-check matrix),以供編碼器檢查所產生出來的校驗碼是否正確。舉例來說,編碼器在對資料進行編碼以產生校驗碼之後,會將資料與校驗碼和此校驗碼檢查矩陣進行相乘,而若是相乘結果等於“0”則判斷編碼正確;而若是相乘結果不等於“0”則判斷編碼錯誤。因應此校驗碼檢查矩陣,編碼器會具有一相對應的校驗碼產生矩陣以供產生適合的校驗碼,然而,在某些情況下,校驗碼產生矩陣可能無法被找到,因此編碼器會需要進行多個矩陣乘法操作及/或補償/調整操作,以產生類似使用校驗碼產生矩陣所產生的校驗碼,因此會增加編碼器的複雜度。特別地,上述多個矩陣乘法操作通常會包含循環卷積(circulant convolution)計算,因此更會大幅增加編碼器的硬體成本。
因此,本發明的目的之一在於提出一種編碼器,其可以降低編碼器 中的循環卷積計算所需要的硬體,以避免先前技術中所述之硬體成本大幅增加的情形。
在本發明的一個實施例中,揭露了一種應用在一快閃記憶體控制器中的編碼器,其包含有一桶式移位器模組、一反矩陣計算電路以及一計算電路。在該編碼器的操作中,該桶式移位器模組用以將多個資料區塊進行處理以產生多個局部校驗碼區塊,其中該多個局部校驗碼區塊包含了一第一部分、一第二部分以及一第三部分;該第一反矩陣計算電路耦接於該桶式移位器模組,且用以對該第一部分進行反矩陣運算以產生一第一部分的校驗碼區塊;該計算電路耦接於該桶式移位器模組以及該調整電路,且用以根據該第一部分的校驗碼區塊來對該第二部分以及該第三部分進行反矩陣運算,以產生一第二部分的校驗碼區塊以及一第三部分的校驗碼區塊;其中該第一部分的校驗碼區塊、該第二部分的校驗碼區塊以及該第三部分的校驗碼區塊係作為該編碼器針對該多個資料區塊所產生之多個校驗碼區塊,且該多個資料區塊以及該多個校驗碼區塊係被寫入至一快閃記憶體中。
在本發明的另一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有一記憶體、一微處理器以及一編碼器,其中該記憶體用來儲存一程式碼,該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取,以及該編碼器用以對該多個資料區塊進行編碼以得到多個校驗碼區塊。該編碼器包含有一桶式移位器模組、一反矩陣計算電路以及一計算電路。在該編碼器的操作中,該桶式移位器模組用以將多個資料區塊進行處理以產生多個局部校驗碼區塊,其中該多個局部校驗碼區塊包含了一第一部分、一第二部分以及一第三部分; 該第一反矩陣計算電路耦接於該桶式移位器模組,且用以對該第一部分進行反矩陣運算以產生一第一部分的校驗碼區塊;該計算電路耦接於該桶式移位器模組以及該調整電路,且用以根據該第一部分的校驗碼區塊來對該第二部分以及該第三部分進行反矩陣運算,以產生一第二部分的校驗碼區塊以及一第三部分的校驗碼區塊;其中該第一部分的校驗碼區塊、該第二部分的校驗碼區塊以及該第三部分的校驗碼區塊係作為該編碼器針對該多個資料區塊所產生之多個校驗碼區塊,且該多個資料區塊以及該多個校驗碼區塊係被寫入至一快閃記憶體中。
在本發明的另一個實施例中,揭露了一種應用在一快閃記憶體控制器的編碼方法,其包含有以下步驟:將多個資料區塊進行處理以產生多個局部校驗碼區塊,其中該多個局部校驗碼區塊包含了一第一部分、一第二部分以及一第三部分;對該第一部分進行反矩陣運算以產生一第一部分的校驗碼區塊;根據該第一部分的校驗碼區塊來對該第二部分以及該第三部分進行反矩陣運算,以產生一第二部分的校驗碼區塊以及一第三部分的校驗碼區塊,其中該第一部分的校驗碼區塊、該第二部分的校驗碼區塊以及該第三部分的校驗碼區塊係作為該編碼器針對該多個資料區塊所產生之多個校驗碼區塊;以及將該多個資料區塊以及該多個校驗碼區塊係寫入至一快閃記憶體中。
100:記憶裝置
110:快閃記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:快閃記憶體模組
130:主裝置
132、300、400、500:編碼器
134:解碼器
302、304:區域
400:編碼器
410:桶式移位器模組
420:第一反矩陣計算電路
430、440:計算電路
431、434、435、441:桶式移位器模組
432:第一調整電路
433:第二反矩陣計算電路
436:第二調整電路
437:第三反矩陣計算電路
442:第四反矩陣計算電路
443:第三調整電路
500~508:步驟
DB_1~DB_N:資料區塊
PB_a、PB_s、PB_b:校驗碼區塊
第1圖為依據本發明一實施例之一種記憶裝置的示意圖。
第2圖為校驗碼檢查矩陣及校驗碼產生矩陣的示意圖。
第3圖為矩陣K的示意圖。
第4圖為根據本發明一實施例之編碼器的示意圖。
第5圖為根據本發明一實施例之一種編碼方法的流程圖。
第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,其中編碼器132用來對寫入到快閃記憶體模組120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從快閃記憶體模組120所讀出的資料進行解碼。
於典型狀況下,快閃記憶體模組120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個區塊(Block),而該控制器(例如:透過微處理器112執行程式碼112C之快閃記憶體控制器110)對快閃記憶體模組120進行複製、抹除、合併資料等運作係以區塊為單位來進行複製、抹除、合併資料。另外,一區塊可記錄特定數量的資料頁(Page),其中該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體模組120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110 可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)130溝通。
在一實施例中,記憶裝置100可以是可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主裝置130為一可與記憶裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,記憶裝置100可以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是該電子裝置的一處理器。
在本實施例中,編碼器132為一低密度奇偶檢查碼(Low-Density Parity Check code,LDPC code)編碼電路,且可以根據來自主裝置130的資料來產生對應的校驗碼,且所產生的校驗碼符合一校驗碼檢查矩陣。具體來說,參考第2圖,假設該校驗碼檢查矩陣為一大小為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的轉置矩陣之後,編碼器132可以將來自主裝置130的資料乘以矩陣P的轉置矩陣來得到對應於該些資料的校驗碼,而編碼器之後再將資料與校驗碼一起乘上該校驗碼檢查矩陣以判斷校驗碼是否正確。舉例來說,若是相乘結果等於“0”則判斷編碼正確;而若是相乘結果不等於“0”則判斷編碼錯誤。在判斷編碼正確之後,資料與對應的校驗碼便會被 寫入至快閃記憶體模組120中的一個資料頁中。
需注意的是上述該校驗碼檢查矩陣的每一個單元都在實作上為一區塊,而該區塊可以是一個方陣(例如64*64的矩陣或是192*192的矩陣),亦即該校驗碼檢查矩陣包含了c*t個區塊。
然而,在某些情況下,反矩陣K-1可能無法被輕易找到,因此編碼器132會需要進行多個矩陣乘法操作及/或補償/調整操作來得到一個類似反矩陣K-1的內容,以供找出校驗碼產生矩陣來產生校驗碼。本發明因此提出了一種電路架構,以使得編碼器132可以在盡可能節省硬體成本的情形下完成編碼器132的操作。需注意的是,編碼器132中有關於編碼的過程涉及許多複雜的數學運算,但由於本發明的重點是在於電路架構的設計,故相關的矩陣內容及推導過程的細節在此不予贅述。
第3圖為根據本發明一實施例之矩陣K的示意圖。其中矩陣K的行與列可以分別被區分為三段,而每一段分別具有a個區塊、s個區塊以及b個區塊。在本實施例中,第3圖所示之矩陣K的最右上角的區域302是空白區域,亦即區域302內的所有區塊中的所有數值均為“0”;斜線部分的區域304則是一個非零區域,亦即區域304內的所有區塊都一定包含了一個非零的數值;此外,矩陣K的其他區域則不限於空白區域或是非零區域。以下所示之編碼器132係針對第3圖所示的矩陣K來進行設計,但本發明並不以此為限。
第4圖,其為根據本發明一實施例之編碼器400的示意圖,其中編碼器400可以作為第1圖所示之編碼器132。如第4圖所示,編碼器400包含了一桶式 移位器模組410、一第一反矩陣計算電路420以及一計算電路430,其中計算電路430包含了三個桶式移位器模組431、434與435、一第一調整電路432、一第二反矩陣計算電路433、一第二調整電路436、一第三反矩陣計算電路437以及一計算電路440,其中計算電路440包含了一桶式移位器模組441、一第四反矩陣計算電路442以及一第三調整電路443。在本實施例中,桶式移位器模組410、431、434、435、441可以使用多個桶式移位器以及多個累加電路來實作,而第一反矩陣計算電路420、第二反矩陣計算電路433、第三反矩陣計算電路437以及第四反矩陣計算電路442則可以使用循環卷積計算電路以及補償電路來實作。在本實施例中,編碼器400係將來自主裝置130的一筆資料分為多個資料區塊(在本實施例中該多個資料區塊為N個資料區塊DB_1~DB_N),並將該多個資料區塊DB_1~DB_N進行編碼後產生多個校驗碼區塊(在本實施例中該多個校驗碼區塊為(a+s+b)個校驗碼區塊PB_a、PB_s、PB_b)。需注意的是,上述之一個資料區塊與一個校驗碼區塊的大小是相同的,且資料區塊的大小可以由設計者所自行決定,例如64*64個位元或是192*192個位元。
在編碼器400的操作中,首先,桶式移位器模組410將資料區塊DB_1~DB_N進行處理以產生多個局部校驗碼(partial parity)區塊。具體來說,桶式移位器模組410可以透過內部的第一個桶式移位器分別對資料區塊DB_1~DB_N進行移位操作,並透過累加電路來將移位後資料區塊進行相加來得到第一個局部校驗碼區塊;接著,透過內部的第二個桶式移位器分別對資料區塊DB_1~DB_N進行移位操作,並透過累加電路來將移位後資料區塊進行相加來得到第二個局部校驗碼區塊...以此類推,桶式移位器模組410共產生(a+s+b)個局部校驗碼區塊。
局部校驗碼區塊會被分三個部分以進行不同的處理,其中第一部分包含了a個局部校驗碼區塊、第二部分包含了s個局部校驗碼區塊、而第三部分包含了b個局部校驗碼區塊。在第一反矩陣計算電路420的操作中,其對該a個局部校驗碼區塊進行反矩陣運算(亦即,循環卷積操作以及補償運算),以產生a個校驗碼區塊PB_a。接著,計算電路430根據該a個校驗碼區塊PB_a、該s個局部校驗碼區塊以及該b個局部校驗碼區塊來產生s個校驗碼區塊PB_s以及b個校驗碼區塊PB_b。
詳細來說,首先,桶式移位器模組431會對該a個校驗碼區塊PB_a進行處理以產生b個處理後區塊,之後第一調整電路432將該b個處理後區塊與該b個局部校驗碼區塊相加以產生一調整後第三部分資料。接著,第二反矩陣計算電路433對該調整後第三部分資料進行反矩陣運算以產生一第一運算結果,桶式移位器模組435對該a個校驗碼區塊PB_a進行處理以產生s個第一處理後區塊,桶式移位器模組434對該第一運算結果進行處理以產生s個第二處理後區塊,且第二調整電路436將該s個第一處理後區塊、該s個第二處理後區塊以及該s個局部校驗碼區塊相加以產生一調整後第二部分資料。接著,第三反矩陣計算電路437對該調整後第二部分資料進行反矩陣運算以產生該s個校驗碼區塊PB_s。接著,桶式移位器模組441對該s個校驗碼區塊PB_s結果進行處理以產生b個處理後區塊,第四反矩陣計算電路442對該b個處理後區塊進行反矩陣運算以產生一第二運算結果,以及第三調整電路443根據該第一運算結果以及該第二運算結果以產生該b個校驗碼區塊PB_b。
在產生校驗碼區塊PB_a、PB_s、PB_b之後,編碼器300會將資料區塊DB_1~DB_N連同校驗碼區塊PB_a、PB_s、PB_b一起與校驗碼檢查矩陣相乘 以判斷校驗碼區塊PB_a、PB_s、PB_b是否正確。若是正確,快閃記憶體控制器110便會將資料區塊DB_1~DB_N連同校驗碼區塊PB_a、PB_s、PB_b一起寫入到快閃記憶體模組120的一區塊的一資料頁中。
在第4圖所示的電路架構中,桶式移位器模組410可以被比對為第2圖所示之矩陣M,而第一反矩陣計算電路420以及計算電路430則是用來產生一個類似於第2圖所示之反矩陣K-1的內容,以在無法確實找到反矩陣K-1的情形下可以產生校驗碼區塊PB_a、PB_s、PB_b。此外,編碼器400在實作上可以大幅降低循環卷積計算電路(包含於反矩陣計算電路中)的數量。舉例來說,假設K為10*10的方陣,且a=4、s=1、=5,則先前技術中編碼器所需要使用100個循環卷積計算電路(10*10=100);在本實施例中,第一反矩陣計算電路420需要16個循環卷積計算電路(a=4,4*4=16),第二反矩陣計算電路433需要25個循環卷積計算電路(b=5,5*5=25),第三反矩陣計算電路437僅需要一個循環卷積計算電路,而第四反矩陣計算電路442需要25個循環卷積計算電路,因此本實施例僅需要67個循環卷積計算電路,因此可以確實降低編碼器400的硬體成本。
此外,由於本實施例中的第一反矩陣計算電路420可以立即將桶式移位器模組410所輸出的a個局部校驗碼區塊進行反矩陣計算,以產生a個校驗碼區塊來輸出到後端的電路,因此若是後續的第二反矩陣計算電路433、第三反矩陣計算電路437以及第四反矩陣計算電路442的計算不複雜的話,編碼器400可以在沒有延遲的情形下不斷地輸出校驗碼區塊至後端電路,以增進整體系統的效能。
參考第5圖,其為根據本發明一實施例之一種編碼方法的流程圖,同時參考第1~5圖及以上實施例所揭露的內容,編碼方法的流程如下所述。
步驟500:流程開始。
步驟502:將多個資料區塊進行處理以產生多個局部校驗碼區塊,其中該多個局部校驗碼區塊包含了一第一部分、一第二部分以及一第三部分。
步驟504:對該第一部分進行反矩陣運算以產生一第一部分的校驗碼區塊。
步驟506:根據該第一部分的校驗碼區塊來對該第二部分以及該第三部分進行反矩陣運算,以產生一第二部分的校驗碼區塊以及一第三部分的校驗碼區塊,其中該第一部分的校驗碼區塊、該第二部分的校驗碼區塊以及該第三部分的校驗碼區塊係作為該編碼器針對該多個資料區塊所產生之多個校驗碼區塊。
步驟508:將該多個資料區塊以及該多個校驗碼區塊係寫入至一快閃記憶體中。
簡要歸納本發明,在本發明之編碼器中,其透過將局部校驗碼區塊分為三個部分來進行操作,以在可以確實產生校驗碼區塊的情形下降低編碼器中的循環卷積計算所需要的硬體。因此,本發明之編碼器可以避免先前技術中所述之硬體成本大幅增加的情形。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
400:編碼器
410:桶式移位器模組
420:第一反矩陣計算電路
430、440:計算電路
431、434、435、441:桶式移位器模組
432:第一調整電路
433:第二反矩陣計算電路
436:第二調整電路
437:第三反矩陣計算電路
442:第四反矩陣計算電路
443:第三調整電路443
DB_1~DB_N:資料區塊
PB_a、PB_s、PB_b:校驗碼區塊

Claims (9)

  1. 一種編碼器,包含有:一桶式移位器模組,用以將多個資料區塊進行處理以產生多個局部校驗碼(partial parity)區塊,其中該多個局部校驗碼區塊包含了一第一部分、一第二部分以及一第三部分;其中該編碼器所使用的一校驗碼檢查矩陣可以分割為一第一矩陣與一第二矩陣,該第二矩陣為一方陣,該第二矩陣的每一行由上而下被區分為a個區塊、s個區塊及b個區塊,該第二矩陣的每一列由左至右被區分為a個區塊、s個區塊及b個區塊,且最右上角的a*b的區塊均為空白區塊;以及該多個局部校驗碼區塊之該第一部分、該第二部分以及該第三部分的數量分別為a個局部校驗碼區塊、s個局部校驗碼區塊與b個局部校驗碼區塊;一第一反矩陣計算電路,耦接於該桶式移位器模組,用以對該第一部分進行反矩陣運算以產生一第一部分的校驗碼區塊;以及一計算電路,耦接於該桶式移位器模組以及該第一反矩陣計算電路,用以根據該第一部分的校驗碼區塊來對該第二部分以及該第三部分進行反矩陣運算,以產生一第二部分的校驗碼區塊以及一第三部分的校驗碼區塊;其中該第一部分的校驗碼區塊、該第二部分的校驗碼區塊以及該第三部分的校驗碼區塊係作為該編碼器針對該多個資料區塊所產生之多個校驗碼區塊。
  2. 如申請專利範圍第1項所述之編碼器,其中該計算電路包含有:一第一調整電路,耦接於該第一反矩陣計算電路,用以根據該第一部分的校驗碼區塊來調整該多個局部校驗碼區塊的該第三部分以產生一調整 後第三部分;一第二反矩陣計算電路,耦接於該第一調整電路,用以對該調整後第三部分進行反矩陣運算以產生一第一運算結果;一第二調整電路,耦接於該桶式移位器模組、該第一反矩陣計算電路以及該第二反矩陣計算電路,用以根據該第一部分的校驗碼區塊以及該第一運算結果來調整該多個局部校驗碼區塊的該第二部分以產生一調整後第二部分;一第三反矩陣計算電路,耦接於該第二調整電路,用以對該調整後第二部分進行反矩陣運算以產生一第二部分的校驗碼區塊;以及另一計算電路,耦接於該第二反矩陣計算電路以及第三反矩陣計算電路,用以根據該第一運算結果以及該第二部分的校驗碼區塊以產生一第三部分的校驗碼區塊。
  3. 如申請專利範圍第1項所述之編碼器,其為一低密度奇偶檢查碼(Low-Density Parity Check code,LDPC code)編碼電路。
  4. 一種快閃記憶體控制器,包含有:一記憶體,用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;以及一編碼器,包含有:一桶式移位器模組,用以將多個資料區塊進行處理以產生多個局部校驗碼(partial parity)區塊,其中該多個局部校驗碼區塊包含了一第一部分、一第二部分以及一第三部分;其中該編碼器所使用的一校驗碼檢查矩陣可以分割為一第一矩陣與一第二矩陣,該第二矩陣 為一方陣,該第二矩陣的每一行由上而下被區分為a個區塊、s個區塊及b個區塊,該第二矩陣的每一列由左至右被區分為a個區塊、s個區塊及b個區塊,且最右上角的a*b的區塊均為空白區塊;以及該多個局部校驗碼區塊之該第一部分、該第二部分以及該第三部分的數量分別為a個局部校驗碼區塊、s個局部校驗碼區塊與b個局部校驗碼區塊;一第一反矩陣計算電路,耦接於該桶式移位器模組,用以對該第一部分進行反矩陣運算以產生一第一部分的校驗碼區塊;以及一計算電路,耦接於該桶式移位器模組以及該第一反矩陣計算電路,用以根據該第一部分的校驗碼區塊來對該第二部分以及該第三部分進行反矩陣運算,以產生一第二部分的校驗碼區塊以及一第三部分的校驗碼區塊;其中該第一部分的校驗碼區塊、該第二部分的校驗碼區塊以及該第三部分的校驗碼區塊係作為該編碼器針對該多個資料區塊所產生之多個校驗碼區塊。
  5. 如申請專利範圍第4項所述之快閃記憶體控制器,其中該計算電路包含有:一第一調整電路,耦接於該第一反矩陣計算電路,用以根據該第一部分的校驗碼區塊來調整該多個局部校驗碼區塊的該第三部分以產生一調整後第三部分;一第二反矩陣計算電路,耦接於該第一調整電路,用以對該調整後第三部分進行反矩陣運算以產生一第一運算結果;一第二調整電路,耦接於該桶式移位器模組、該第一反矩陣計算電路以及 該第二反矩陣計算電路,用以根據該第一部分的校驗碼區塊以及該第一運算結果來調整該多個局部校驗碼區塊的該第二部分以產生一調整後第二部分;一第三反矩陣計算電路,耦接於該第二調整電路,用以對該調整後第二部分進行反矩陣運算以產生一第二部分的校驗碼區塊;以及另一計算電路,耦接於該第二反矩陣計算電路以及第三反矩陣計算電路,用以根據該第一運算結果以及該第二部分的校驗碼區塊以產生一第三部分的校驗碼區塊。
  6. 如申請專利範圍第4項所述之快閃記憶體控制器,其中該編碼器為一低密度奇偶檢查碼(Low-Density Parity Check code,LDPC code)編碼電路。
  7. 一種編碼方法,包含有:將多個資料區塊進行處理以產生多個局部校驗碼(partial parity)區塊,其中該多個局部校驗碼區塊包含了一第一部分、一第二部分以及一第三部分;其中該編碼器所使用的一校驗碼檢查矩陣可以分割為一第一矩陣與一第二矩陣,該第二矩陣為一方陣,該第二矩陣的每一行由上而下被區分為a個區塊、s個區塊及b個區塊,該第二矩陣的每一列由左至右被區分為a個區塊、s個區塊及b個區塊,且最右上角的a*b的區塊均為空白區塊;以及該多個局部校驗碼區塊之該第一部分、該第二部分以及該第三部分的數量分別為a個局部校驗碼區塊、s個局部校驗碼區塊與b個局部校驗碼區塊;對該第一部分進行反矩陣運算以產生一第一部分的校驗碼區塊;以及根據該第一部分的校驗碼區塊來對該第二部分以及該第三部分進行反矩陣 運算,以產生一第二部分的校驗碼區塊以及一第三部分的校驗碼區塊,其中該第一部分的校驗碼區塊、該第二部分的校驗碼區塊以及該第三部分的校驗碼區塊係作為該編碼器針對該多個資料區塊所產生之多個校驗碼區塊。
  8. 如申請專利範圍第7項所述之編碼方法,其中根據該第一部分的校驗碼區塊來對該第二部分以及該第三部分進行反矩陣運算以產生該第二部分的校驗碼區塊以及該第三部分的校驗碼區塊的步驟包含有:根據該第一部分的校驗碼區塊來調整該多個局部校驗碼區塊的該第三部分以產生一調整後第三部分;對該調整後第三部分進行反矩陣運算以產生一第一運算結果;根據該第一部分的校驗碼區塊以及該第一運算結果來調整該多個局部校驗碼區塊的該第二部分以產生一調整後第二部分;對該調整後第二部分進行反矩陣運算以產生一第二部分的校驗碼區塊;以及根據該第一運算結果以及該第二部分的校驗碼區塊以產生一第三部分的校驗碼區塊。
  9. 如申請專利範圍第7項所述之編碼方法,其使用一低密度奇偶檢查碼(Low-Density Parity Check code,LDPC code)編碼電路來執行。
TW108137044A 2018-10-12 2018-10-12 編碼器及相關的編碼方法與快閃記憶體控制器 TWI711279B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW108137044A TWI711279B (zh) 2018-10-12 2018-10-12 編碼器及相關的編碼方法與快閃記憶體控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108137044A TWI711279B (zh) 2018-10-12 2018-10-12 編碼器及相關的編碼方法與快閃記憶體控制器

Publications (2)

Publication Number Publication Date
TW202015347A TW202015347A (zh) 2020-04-16
TWI711279B true TWI711279B (zh) 2020-11-21

Family

ID=71130655

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108137044A TWI711279B (zh) 2018-10-12 2018-10-12 編碼器及相關的編碼方法與快閃記憶體控制器

Country Status (1)

Country Link
TW (1) TWI711279B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140126745A1 (en) * 2012-02-08 2014-05-08 Dolby Laboratories Licensing Corporation Combined suppression of noise, echo, and out-of-location signals
WO2018041843A1 (en) * 2016-08-29 2018-03-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder for Encoding, and Decoder for Decoding, a Digital Image Representation into a Data Stream using Indicating a Number of Leading Zero Bit Planes
US20180123652A1 (en) * 2016-10-27 2018-05-03 Korea University Research And Business Foundation Mimo systems with independent oscillators and phase noise mitigation method thereof
US20180246783A1 (en) * 2016-03-04 2018-08-30 Sandisk Technologies Llc Storage System and Method for Handling a Burst of Errors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140126745A1 (en) * 2012-02-08 2014-05-08 Dolby Laboratories Licensing Corporation Combined suppression of noise, echo, and out-of-location signals
US20180246783A1 (en) * 2016-03-04 2018-08-30 Sandisk Technologies Llc Storage System and Method for Handling a Burst of Errors
WO2018041843A1 (en) * 2016-08-29 2018-03-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder for Encoding, and Decoder for Decoding, a Digital Image Representation into a Data Stream using Indicating a Number of Leading Zero Bit Planes
US20180123652A1 (en) * 2016-10-27 2018-05-03 Korea University Research And Business Foundation Mimo systems with independent oscillators and phase noise mitigation method thereof

Also Published As

Publication number Publication date
TW202015347A (zh) 2020-04-16

Similar Documents

Publication Publication Date Title
TWI602188B (zh) 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
TWI712268B (zh) 快閃記憶體控制器及其中的編碼電路與解碼電路
US10097208B2 (en) Error locator polynomial decoder method
US10291258B2 (en) Error correcting code for correcting single symbol errors and detecting double bit errors
TWI665678B (zh) 編碼器及相關的編碼方法與快閃記憶體控制器
TWI643201B (zh) 編碼器及相關的編碼方法與快閃記憶體控制器
US9236886B1 (en) Universal and reconfigurable QC-LDPC encoder
TWI711279B (zh) 編碼器及相關的編碼方法與快閃記憶體控制器
CN108665940B (zh) Ecc编码电路、解码电路以及存储器控制器
TWI677878B (zh) 編碼器及相關的編碼方法與快閃記憶體控制器
TWI651730B (zh) 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
TWI804347B (zh) 編碼器與快閃記憶體控制器
TWI684856B (zh) 解碼方法及相關的快閃記憶體控制器與電子裝置
TWI782341B (zh) 快閃記憶體控制器及其中的編碼電路
TWI759672B (zh) 解碼方法及相關的快閃記憶體控制器與電子裝置
WO2020015129A1 (zh) 一种随机内存使用纠错码校验免去冗余储存单元的方法