TWI651730B - 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 - Google Patents

用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 Download PDF

Info

Publication number
TWI651730B
TWI651730B TW106130465A TW106130465A TWI651730B TW I651730 B TWI651730 B TW I651730B TW 106130465 A TW106130465 A TW 106130465A TW 106130465 A TW106130465 A TW 106130465A TW I651730 B TWI651730 B TW I651730B
Authority
TW
Taiwan
Prior art keywords
matrix
data
predetermined
parity
code
Prior art date
Application number
TW106130465A
Other languages
English (en)
Other versions
TW201839775A (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 TW106130465A priority Critical patent/TWI651730B/zh
Publication of TW201839775A publication Critical patent/TW201839775A/zh
Application granted granted Critical
Publication of TWI651730B publication Critical patent/TWI651730B/zh

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本發明提供一種用來於一記憶裝置中進行資料管理之方法以及相關之記憶裝置及其控制器。該方法包含:從該記憶裝置以外之一主裝置接收一組資料;依據一預定奇偶校驗矩陣之一第一子矩陣,對該組資料進行編碼,以產生部分奇偶校驗碼;依據一預定後處理矩陣,對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼,其中該預定後處理矩陣不等於該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣之任何反矩陣;以及將該組資料之一碼字寫入該記憶裝置之一非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正。

Description

用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
本發明係有關於快閃記憶體(Flash memory)之存取(access),尤指一種用來於記憶裝置中進行資料管理之方法以及相關之記憶裝置及其控制器。
近年來由於記憶體的技術不斷地發展,各種可攜式記憶裝置(例如:符合SD/MMC、CF、MS、或XD標準之記憶卡)被廣泛地實施於諸多應用中。因此,這些可攜式記憶裝置中之記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(single level cell, SLC)與多階細胞(multiple level cell, MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(memory cell)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄至少兩組位元資訊(諸如00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之至少兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保可攜式記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。舉例來說,多階細胞快閃記憶體之錯誤率在某些情況下會上升至令人難以置信的地步,而傳統的錯誤更正機制卻不足以應付這些狀況下之叢發錯誤(burst error)。因此,需要一種同時具備錯誤更正機制與資料存取機制之新穎的記憶體存取架構。
本發明之一目的在於提供一種用來於一記憶裝置中進行資料管理之方法以及相關之記憶裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種用來於一記憶裝置中進行資料管理之方法以及相關之記憶裝置及其控制器,以提昇記憶裝置之效能。
本發明之較佳實施例提供一種用來於一記憶裝置中進行資料管理之方法,其中該記憶裝置包含一非揮發性記憶體,而該非揮發性記憶體包含至少一非揮發性記憶體晶片。該方法可包含:從該記憶裝置以外之一主裝置(host device)接收一組資料;依據一預定奇偶校驗矩陣(parity-check matrix)之一第一子矩陣,對該組資料進行編碼,以產生部分奇偶校驗碼(partial parity-check code);依據一預定後處理矩陣,對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼(parity-check code),其中該預定後處理矩陣不等於該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣(transpose matrix)之任何反矩陣(inverse matrix);以及將該組資料之一碼字(codeword)寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正,其中該碼字包含該組資料與該奇偶校驗碼。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,其包含有:一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體晶片;以及一控制器,耦接至該非揮發性記憶體,用來於該記憶裝置中進行資料管理。該控制器從該記憶裝置以外之一主裝置接收一組資料。該控制器依據一預定奇偶校驗矩陣之一第一子矩陣對該組資料進行編碼,以產生部分奇偶校驗碼。另外,該控制器依據一預定後處理矩陣對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼,其中該預定後處理矩陣不等於該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣之任何反矩陣。此外,該控制器將該組資料之一碼字寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正,其中該碼字包含該組資料與該奇偶校驗碼。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置之控制器,其中該記憶裝置包含該控制器與一非揮發性記憶體,而該非揮發性記憶體包含至少一非揮發性記憶體晶片,該控制器包含有:一處理電路,用來控制該控制器從該記憶裝置以外之一主裝置接收一組資料;以及一資料保護電路,耦接至該處理電路,用來進行錯誤更正。該資料保護電路依據一預定奇偶校驗矩陣之一第一子矩陣對該組資料進行編碼,以產生部分奇偶校驗碼。另外,該資料保護電路依據一預定後處理矩陣對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼,其中該預定後處理矩陣不等於該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣之任何反矩陣。此外,該處理電路控制該控制器將該組資料之一碼字寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正,其中該碼字包含該組資料與該奇偶校驗碼。
本發明的好處之一是,藉由適當地進行資料管理,本發明能針對該控制器所存取之資料來進行妥善的記憶體存取管理,以減少錯誤的發生。另外,依據相關實施例來實施並不會增加許多額外的成本,甚至比相關技術更能節省成本。因此,相關技術的問題可被解決,且整體成本不會增加太多。
I. 記憶體系統
請參考第1圖,第1圖為依據本發明一第一實施例之一種記憶裝置100與一主裝置(host device)200的示意圖。例如:記憶裝置100可為一可攜式記憶裝置(例如:符合SD/MMC、CF、MS、或XD標準之記憶卡)或固態硬碟(solid state drive, SSD)。另外,主裝置200的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、平板電腦(tablet)、可穿戴裝置(wearable device)、以及個人電腦(personal computer)諸如桌上型電腦與膝上型電腦。依據本實施例,記憶裝置100可包含一控制器以及一非揮發性記憶體,其中該非揮發性記憶體係用來儲存資訊,該控制器係用來存取(access)該非揮發性記憶體,且該非揮發性記憶體可包含至少一非揮發性記憶體晶片(諸如一或多個非揮發性記憶體晶片)。例如:該控制器與該非揮發性記憶體可分別為一記憶體控制器110與一快閃記憶體(Flash memory)120,快閃記憶體120可包含至少一快閃記憶體晶片(諸如一或多個快閃記憶體晶片;可簡稱為快閃晶片),且記憶體控制器110可用來存取快閃記憶體120。如第1圖所示,記憶體控制器110可包含一處理電路諸如一微處理器112、一儲存器諸如一唯讀記憶體(read only memory, ROM)112M、一控制邏輯電路114、一緩衝記憶體116、與一傳輸介面電路118,其中這些元件可透過一匯流排彼此耦接。緩衝記憶體116係以一隨機存取記憶體(random access memory, RAM)來實施。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體120之存取。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。此外,控制邏輯電路114中之一資料保護電路114DP可保護資料、及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment, SATA)標準、或通用序列匯流排(Universal Serial Bus, USB)標準)且可依據該特定通訊標準進行通訊。
於本實施例中,主裝置200可藉由傳送指令與對應的邏輯位址予記憶體控制器110來存取記憶裝置100。記憶體控制器110接收該些指令與該些邏輯位址,並控制快閃記憶體120讀取、寫入(write/program)、或抹除(erase)快閃記憶體120當中具有實體位址之記憶單位(memory unit),其中該些實體位址對應於該些邏輯位址。
II. 頁位址鏈結表(page address linking table)
第2A圖繪示一快閃晶片0的一區塊當中之一局部(local)頁位址鏈結表,其中快閃晶片0可作為上述至少一快閃記憶體晶片(諸如一或多個快閃記憶體晶片)之一例。如第2A圖所示,快閃晶片0包含複數個區塊0、1、2、…、與M。請注意,一區塊係一抹除單位。換言之,當需要抹除資料時,微處理器112同時抹除儲存於該區塊之全部資料。另外,一區塊,諸如第2A圖所示之區塊0,包含複數個頁。例如:快閃晶片0之區塊0包含128頁。在該區塊諸如區塊0中,這些頁被區分為兩個分區,即用來儲存資料之一資料分區以及用來儲存一局部頁位址鏈結表0之一表格分區。該區塊之資料分區內的諸頁可稱為該區塊之資料頁,其中該些資料頁中之任一者可包含一資料位元組區(data byte region)DBR與一備用位元組區(spare byte region)SBR。
依據本實施例,該資料分區內的頁數以及該表格分區內的頁數可依需要來訂定。例如:頁0、1、2、…、126可用來儲存資料,且該區塊中剩下的頁係用來儲存局部頁位址鏈結表0。依據某些實施例,該資料分區可包含少於127頁,且該表格分區可包含兩頁或更多頁。又例如:該區塊內的總頁數、該資料分區內的頁數以及該表格分區內的頁數可分別予以變化。請注意,一頁係一寫入單位。換言之,當需要寫入資料時,微處理器112一次將相當於一頁的資料寫入一頁。依據本實施例,第1圖所示之快閃記憶體120中之每一快閃晶片的多個區塊中的每一區塊可具有一局部頁位址鏈結表。為了簡明起見,只有快閃晶片0的區塊0之局部頁位址鏈結表0係繪示於第2A圖,是因為每一局部頁位址鏈結表的功能與運作都彼此相似。
於本實施例中,局部頁位址鏈結表0被建立的時間點是當區塊0中之全部資料頁已被寫入,也就是被完全寫入(fully programmed)之時。然而,於區塊0中之資料頁被完全寫入之前,微處理器112會暫時地在該隨機存取記憶體中儲存一暫時局部頁位址鏈結表0;當區塊0中一實體頁位址與一邏輯頁位址之間的任何鏈結關係改變時,微處理器112就更新暫時局部頁位址鏈結表0。
依據本實施例,該暫時/非暫時局部頁位址鏈結表(例如:該暫時局部頁位址鏈結表0或局部頁位址鏈結表0)之一欄位(項目)的排列順位代表一實體頁位址,而此欄位中的內容代表一相關的邏輯頁位址。例如:假設i P與j P分別為第2A圖所示之暫時/非暫時局部頁位址鏈結表之示例表格位置(i P, j P)當中的列數與行數,並且i P= 0、1、…等且j P= 0、1、…等。在第2A圖所示之暫時/非暫時局部頁位址鏈結表的這個二維陣列示例中,對應於第(i P* 4 + j P)個欄位之示例表格位置(i P, j P)代表一實體頁位址PPN,其可描述如下: PPN = (PBN * DPC + i P* 4 + j P); 其中參數PBN表示討論中的實體區塊之實體區塊編號(例如:PBN = 0、1、2、…等,分別對對應於區塊0、1、2、…等),而參數DPC則表示每一區塊之資料頁數量(例如:於本實施例中可為127)。這只是為了說明的目的而已,並非對本發明之限制。為了便於理解,該暫時/非暫時局部頁位址鏈結表可繪示為單一行,如第2B圖右半部所示。給定i P仍為列數且i P= 0、1、…等,則在第2B圖右半部所示的這個一維陣列示例當中,針對區塊PBN的暫時/非暫時局部頁位址鏈結表而言,對應於第i P個欄位之示例表格位置i P代表一實體頁位址(PBN * DPC + i P)。亦即,針對這個一維陣列示例,上式可被重新改寫如下: PPN = (PBN * DPC + i P)。
例如:當主裝置200傳送一指令予微處理器112以在一邏輯頁位址0x0002寫入某些資料時,微處理器112可將這些資料與邏輯頁位址0x0002分別寫入快閃晶片0之區塊0之頁0之資料位元組區DBR與備用位元組區SBR,且將邏輯頁位址0x0002寫入該暫時局部頁位址鏈結表0之第一個欄位,以藉此指出邏輯頁位址0x0002鏈結/映射至快閃晶片0之區塊0之頁0,其實體頁位址係為0x0000。依此類推。當區塊0中之全部資料頁已被寫入時,微處理器112可複製該暫時局部頁位址鏈結表0之最新版本,以建立局部頁位址鏈結表0。請注意,邏輯頁位址{0x0002, 0x0001, 0x0002, 0x0005, 0x0003, 0x0007, 0x0010, 0x0008, …, 0x0000, 0x0009, 0x0004}可作為該些邏輯位址之例子。依據某些實施例,該些邏輯位址可予以變化。
依據某些實施例,一局部頁位址鏈結表諸如局部頁位址鏈結表0中之邏輯頁位址的範圍可大於一區塊諸如區塊0中之頁數。
依據某些實施例,微處理器112可依據分別對應於多個區塊之多個局部頁位址鏈結表,於該隨機存取記憶體中建立一全域(global)頁位址鏈結表,來記錄/更新該些實體位址與該些邏輯位址之間的關係。
III. 錯誤更正
記憶體控制器110可於記憶裝置100中進行資料管理,以在較少或沒有副作用的狀況下解決相關技術的問題。例如:記憶體控制器110可提供一或多類型之錯誤更正機制予記憶裝置100。依據某些實施例,記憶體控制器110可採用低密度奇偶校驗碼(low-density parity-check (LDPC) code)來保護資料、及/或進行錯誤更正。
第3圖為依據本發明一實施例之一種用來於一記憶裝置中進行資料管理之方法300的流程圖,其中方法300可應用於記憶裝置100,且可應用於該控制器諸如記憶體控制器110。
於步驟310中,在該處理電路諸如微處理器112之控制下,記憶體控制器110可從記憶裝置100以外之主裝置200接收一組資料 m。例如:主裝置200可傳送一寫入指令予記憶裝置100,以要求記憶裝置100儲存寫入資料。依據該寫入指令,微處理器112可控制記憶體控制器110從主裝置200接收該些寫入資料,其中該些寫入資料包含至少一組資料(例如一或多組資料{ m}),而上述至少一組資料包含該組資料 m
於步驟320中,記憶體控制器110(例如資料保護電路114DP)可依據一預定奇偶校驗矩陣(parity-check matrix) H之一第一子矩陣 H 1 對該組資料 m進行編碼,以產生部分奇偶校驗碼(partial parity-check code) ppc。例如:資料保護電路114DP可依據第一子矩陣 H 1 對該至少一組資料進行編碼,以產生至少一個部分奇偶校驗碼(例如一或多個部分奇偶校驗碼{ ppc}),其中上述至少一個部分奇偶校驗碼包含部分奇偶校驗碼 ppc
於步驟330中,記憶體控制器110(例如資料保護電路114DP)可依據一預定後處理矩陣 J對部分奇偶校驗碼 ppc進行後處理,以產生該組資料 m之奇偶校驗碼(parity-check code) p,其中預定後處理矩陣 J不等於預定奇偶校驗矩陣 H之一第二子矩陣 H 2 之轉置矩陣(transpose matrix)( H 2 ) T之任何反矩陣(inverse matrix)(( H 2 ) T) -1(若上述任何反矩陣(( H 2 ) T) -1存在)。例如:當反矩陣(( H 2 ) T) -1存在時,則預定後處理矩陣 J不等於(( H 2 ) T) -1;或者,當反矩陣(( H 2 ) T) -1不存在時,則預定後處理矩陣 J也不會是轉置矩陣( H 2 ) T之任何衍生物。例如:資料保護電路114DP可依據預定後處理矩陣 J對該至少一個部分奇偶校驗碼進行該後處理,以產生該至少一組資料之至少一個奇偶校驗碼(例如一或多個奇偶校驗碼{ p}),其中上述至少一個奇偶校驗碼包含奇偶校驗碼 p
於步驟340中,在該處理電路諸如微處理器112之控制下,記憶體控制器110可將該組資料 m之一碼字(codeword) c寫入該非揮發性記憶體(諸如快閃記憶體120),以容許記憶裝置100於從該非揮發性記憶體讀取該組資料 m時進行錯誤更正,其中碼字 c包含該組資料 m與奇偶校驗碼 p。例如:微處理器112可控制記憶體控制器110將該些寫入資料之至少一碼字(例如一或多個碼字{ c})寫入該非揮發性記憶體,以容許記憶裝置100於從該非揮發性記憶體讀取該些寫入資料時進行錯誤更正,其中上述至少一碼字包含上述至少一組資料與上述至少一個奇偶校驗碼。
依據某些實施例,碼字 c等於該組資料與一預定編碼轉換矩陣 G之相乘結果(multiplication result);亦即, m· G= c。基於一種用來進行資料保護之一第一方法,該控制器諸如記憶體控制器110(例如資料保護電路114DP)可對該組資料 m與預定編碼轉換矩陣 G進行一乘法運算(諸如 m· G)以產生碼字 c,且可對該組資料 m與預定編碼轉換矩陣 G之子矩陣 D進行一乘法運算(諸如 m· D)以產生該奇偶校驗碼 p。例如: G= [ I| D],其中 I係為一對應的單位矩陣(identity matrix)。依據某些實施例,基於一種用來進行資料保護之一第二方法,該控制器諸如記憶體控制器110(例如:資料保護電路114DP)可依據下列式子進行計算以產生奇偶校驗碼 pp= m·( H 1 ) T(( H 2 ) T) -1
請注意,步驟320中之預定奇偶校驗矩陣 H並非預定編碼轉換矩陣 G,且步驟330中之預定後處理矩陣 並非預定編碼轉換矩陣 G。基於第3圖所示之方法300,資料保護電路114DP於產生部分奇偶校驗碼 ppc之過程中採用了預定奇偶校驗矩陣 H之第一子矩陣 H 1 (而非預定編碼轉換矩陣 G),且於產生奇偶校驗碼 p之過程中採用了預定後處理矩陣 (而非預定編碼轉換矩陣 G)。於第3圖所示之實施例中,藉由依據預定後處理矩陣 對部分奇偶校驗碼 ppc進行該後處理,而非藉由對該組資料 m與預定編碼轉換矩陣 G進行任一乘法運算,記憶體控制器110(例如資料保護電路114DP)產生該奇偶校驗碼 p。於某些實施例中,預定編碼轉換矩陣 G與預定奇偶校驗矩陣 H互為零空間(null space)。例如:該組資料 m可包含k個位元且可記為一維矩陣( m) 1 x k,碼字 c可包含n個位元且可記為一維矩陣( c) 1 x n,且奇偶校驗碼 p可包含(n - k)個位元且可記為一維矩陣( p) 1 x (n - k),其中k與n為正整數且n > k。另外,預定編碼轉換矩陣 G可記為二維矩陣( G) k x n,且預定奇偶校驗矩陣 H可記為二維矩陣( H) (n - k) x n。此外,預定編碼轉換矩陣 G之任一列(row)與預定奇偶校驗矩陣 H之任一列(row)的內積(inner product)等於零;為了簡明起見,可記為 G· H T= 0。於某些實施例中,該組資料 m、碼字 c與奇偶校驗碼 p可分別記為一維矩陣( m) 1 x k、一維矩陣( c) 1 x n與一維矩陣( p) 1 x (n - k),且預定奇偶校驗矩陣 H可記為二維矩陣( H) (n - k) x n。另外,碼字 c與預定奇偶校驗矩陣 H之任一列的內積等於零;為了簡明起見,可記為 c· H T= 0。依據某些實施例,第二子矩陣 H 2 可為一非滿秩(non-full rank)矩陣,其中第二子矩陣 H 2 之轉置矩陣( H 2 ) T之反矩陣(( H 2 ) T) -1不存在。
相較於該第一方法與該第二方法,第3圖所示之方法300可增進資料保護電路114DP之各種效能,諸如編碼效能。
第4圖繪示一實施例中之相關矩陣的大小。當符號「k」與「n」分別代表該組資料 m的位元數與碼字 c的位元數時,奇偶校驗碼 p的位元數等於碼字 c的位元數n減掉該組資料 m的位元數k所得之差值(n - k),且預定奇偶校驗矩陣 H的大小等於此差值(n - k)與碼字 c的位元數n之乘積((n - k) * n)。另外,第一子矩陣 H 1 的大小等於差值(n - k)與該組資料 m的位元數k之乘積((n - k) * k),且第二子矩陣 H 2 的大小等於差值(n - k)之平方值((n - k) * (n - k))。
依據某些實施例,在該處理電路諸如微處理器112之控制下,記憶體控制器110可從該非揮發性記憶體(諸如快閃記憶體120)讀取碼字 c,以產生碼字 c之讀出資料。記憶體控制器110(例如資料保護電路114DP)可依據預定奇偶校驗矩陣 H判斷該些讀出資料是否正確。例如:資料保護電路114DP可包含一唯讀記憶體,以供儲存預定奇偶校驗矩陣 H。又例如:預定奇偶校驗矩陣 H可儲存於唯讀記憶體112M或其它記憶體。當判斷該些讀出資料為正確時,記憶體控制器110(例如該處理電路諸如微處理器112)可控制記憶裝置100輸出該些讀出資料所載(carry)之該組資料 m;否則,資料保護電路114DP可依據該些讀出資料進行錯誤更正,以重獲(recover)該組資料 m。例如:因應來自主裝置200之一讀取指令,微處理器112可控制記憶裝置100輸出該組資料 m(諸如該些讀出資料所載之該組資料 m、或透過錯誤更正所重獲之該組資料 m)。
第5圖為依據本發明一實施例之一編碼電路500,其中編碼電路500可設置於第1圖所示之資料保護電路114DP中。編碼電路500可包含一第一子矩陣產生器(可簡稱為「 H 1 產生器」)510、一乘法電路512與一後處理電路520。例如:第一子矩陣產生器510可包含一唯讀記憶體,而此唯讀記憶體儲存有第一子矩陣 H 1 。第一子矩陣產生器510可依照一預定順序輸出第一子矩陣 H 1 之元素(element)至乘法電路512。另外,乘法電路512可接收該組資料 m與第一子矩陣 H 1 ,且可進行一乘法運算(諸如 m·( H 1 ) T)以產生部分奇偶校驗碼 ppc。例如: ppc= m·( H 1 ) T。此外,後處理電路520可依據預定後處理矩陣 對部分奇偶校驗碼 ppc進行該後處理以產生奇偶校驗碼 p。例如:該後處理可包含一乘法運算(諸如 ppc· J)以及後續運算;為了簡明起見,該後處理可記為f( ppc· J),其中符號f( )可代表該後續運算。依據某些實施例,第5圖所示之架構可予以變化。
依據某些實施例,第1圖所示之架構與第3圖所示之方法300可予以變化。例如:該後處理可包含隨機化(randomize)運作、類似容錯式磁碟陣列(Redundant Array of Independent Disks, RAID)之資料保護運作與任何線性轉換,其中後處理電路520可包含相關子電路諸如隨機化電路(randomizer circuit)…等。另外,解碼所需之架構亦可對應地變化。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100 記憶裝置 110 記憶體控制器 112 微處理器 112C 程式碼 112M 唯讀記憶體 114 控制邏輯電路 114DP 資料保護電路 116 緩衝記憶體 118 傳輸介面電路 120 快閃記憶體 200 主裝置 300 用來於記憶裝置中進行資料管理之方法 310 從主裝置接收資料之步驟 320 進行編碼以產生部分奇偶校驗碼之步驟 330 進行後處理以產生奇偶校驗碼之步驟 340 將碼字寫入非揮發性記憶體之步驟 500 編碼電路 510 第一子矩陣產生器 512 乘法電路 520 後處理電路 c碼字 G預定編碼轉換矩陣 H預定奇偶校驗矩陣 m一組資料 p奇偶校驗碼 ppc部分奇偶校驗碼 ( c) 1 x n, ( m) 1 x k, ( p) 1 x (n - k)一維矩陣 ( G) k x n, ( H) (n - k) x n二維矩陣
第1圖為依據本發明一第一實施例之一種記憶裝置與一主裝置(host device)的示意圖。 第2A圖繪示一快閃晶片(Flash chip)的一區塊當中之一局部頁位址鏈結表(local page address linking table)。 第2B圖比較第2A圖所示之局部頁位址鏈結表的一維陣列示例與二維陣列示例。 第3圖為依據本發明一實施例之一種用來於一記憶裝置中進行資料管理之方法的流程圖。 第4圖繪示一實施例中之相關矩陣的大小。 第5圖為依據本發明一實施例之一編碼電路。

Claims (20)

  1. 一種用來於一記憶裝置中進行資料管理之方法,該記憶裝置包含一非揮發性記憶體,該非揮發性記憶體包含至少一非揮發性記憶體晶片,該方法包含有: 從該記憶裝置以外之一主裝置(host device)接收一組資料; 依據一預定奇偶校驗矩陣(parity-check matrix)之一第一子矩陣,對該組資料進行編碼,以產生部分奇偶校驗碼(partial parity-check code); 依據一預定後處理矩陣,對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼(parity-check code),其中若該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣(transpose matrix)之任何反矩陣(inverse matrix)存在,則該預定後處理矩陣不等於該第二子矩陣之該轉置矩陣之該反矩陣,否則,該預定後處理矩陣不是該第二子矩陣之該轉置矩陣之任何衍生物;以及 將該組資料之一碼字(codeword)寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正,其中該碼字包含該組資料與該奇偶校驗碼。
  2. 如申請專利範圍第1項所述之方法,其中該主裝置傳送一寫入指令予該記憶裝置,以要求該記憶裝置儲存寫入資料;以及該方法包含: 依據該寫入指令,從該主裝置接收該些寫入資料,其中該些寫入資料包含至少一組資料,而該至少一組資料包含該組資料; 依據該第一子矩陣對該至少一組資料進行編碼,以產生至少一個部分奇偶校驗碼,其中該至少一個部分奇偶校驗碼包含該部分奇偶校驗碼; 依據該預定後處理矩陣對該至少一個部分奇偶校驗碼進行該後處理,以產生該至少一組資料之至少一個奇偶校驗碼,其中該至少一個奇偶校驗碼包含該奇偶校驗碼;以及 將該些寫入資料之至少一碼字寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該些寫入資料時進行錯誤更正,其中該至少一碼字包含該至少一組資料與該至少一個奇偶校驗碼。
  3. 如申請專利範圍第1項所述之方法,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定奇偶校驗矩陣並非該預定編碼轉換矩陣。
  4. 如申請專利範圍第1項所述之方法,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定後處理矩陣並非該預定編碼轉換矩陣。
  5. 如申請專利範圍第4項所述之方法,其另包含: 藉由依據該預定後處理矩陣對該部分奇偶校驗碼進行該後處理,而非藉由對該組資料與該預定編碼轉換矩陣進行一乘法運算,產生該奇偶校驗碼。
  6. 如申請專利範圍第1項所述之方法,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定編碼轉換矩陣之任一列(row)與該預定奇偶校驗矩陣之任一列的內積(inner product)等於零。
  7. 如申請專利範圍第1項所述之方法,其中該碼字與該預定奇偶校驗矩陣之任一列(row)的內積(inner product)等於零。
  8. 如申請專利範圍第1項所述之方法,其另包含: 從該非揮發性記憶體讀取該碼字,以產生該碼字之讀出資料; 依據該預定奇偶校驗矩陣,判斷該些讀出資料是否正確;以及 當判斷該些讀出資料為正確時,控制該記憶裝置輸出該些讀出資料所載(carry)之該組資料,否則,依據該些讀出資料進行錯誤更正,以重獲(recover)該組資料。
  9. 如申請專利範圍第1項所述之方法,其中該第二子矩陣係一非滿秩(non-full rank)矩陣,且該第二子矩陣之該轉置矩陣之該反矩陣不存在。
  10. 如申請專利範圍第1項所述之方法,其中該奇偶校驗碼的位元數等於該碼字的位元數減掉該組資料的位元數所得之差值,且該預定奇偶校驗矩陣的大小等於該差值與該碼字的位元數之乘積。
  11. 如申請專利範圍第10項所述之方法,其中當符號「k」與「n」分別代表該組資料的位元數與該碼字的位元數時,該奇偶校驗碼的位元數等於 (n - k),且該預定奇偶校驗矩陣的大小等於 ((n - k) * n),其中k與n為正整數且n > k。
  12. 如申請專利範圍第10項所述之方法,其中該第一子矩陣的大小等於該差值與該組資料的位元數之乘積,且該第二子矩陣的大小等於該差值之平方值。
  13. 如申請專利範圍第12項所述之方法,其中當符號「k」與「n」分別代表該組資料的位元數與該碼字的位元數時,該奇偶校驗碼的位元數等於 (n - k),且該預定奇偶校驗矩陣的大小等於 ((n - k) * n),其中k與n為正整數且n > k;以及該第一子矩陣的大小等於 ((n - k) * k),且該第二子矩陣的大小等於 ((n - k) * (n - k))。
  14. 一種記憶裝置,包含有: 一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體晶片;以及 一控制器,耦接至該非揮發性記憶體,用來於該記憶裝置中進行資料管理,其中: 該控制器從該記憶裝置以外之一主裝置(host device)接收一組資料; 該控制器依據一預定奇偶校驗矩陣(parity-check matrix)之一第一子矩陣對該組資料進行編碼,以產生部分奇偶校驗碼(partial parity-check code); 該控制器依據一預定後處理矩陣對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼(parity-check code),其中若該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣(transpose matrix)之任何反矩陣(inverse matrix)存在,則該預定後處理矩陣不等於該第二子矩陣之該轉置矩陣之該反矩陣,否則,該預定後處理矩陣不是該第二子矩陣之該轉置矩陣之任何衍生物;以及 該控制器將該組資料之一碼字(codeword)寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正,其中該碼字包含該組資料與該奇偶校驗碼。
  15. 如申請專利範圍第14項所述之記憶裝置,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定奇偶校驗矩陣並非該預定編碼轉換矩陣。
  16. 如申請專利範圍第14項所述之記憶裝置,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定後處理矩陣並非該預定編碼轉換矩陣。
  17. 如申請專利範圍第16項所述之記憶裝置,其中,藉由依據該預定後處理矩陣對該部分奇偶校驗碼進行該後處理,而非藉由對該組資料與該預定編碼轉換矩陣進行一乘法運算,該控制器產生該奇偶校驗碼。
  18. 一種記憶裝置之控制器,該記憶裝置包含該控制器與一非揮發性記憶體,該非揮發性記憶體包含至少一非揮發性記憶體晶片,該控制器包含有: 一處理電路,用來控制該控制器從該記憶裝置以外之一主裝置(host device)接收一組資料;以及 一資料保護電路,耦接至該處理電路,用來進行錯誤更正,其中: 該資料保護電路依據一預定奇偶校驗矩陣(parity-check matrix)之一第一子矩陣對該組資料進行編碼,以產生部分奇偶校驗碼(partial parity-check code);以及 該資料保護電路依據一預定後處理矩陣對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼(parity-check code),其中若該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣(transpose matrix)之任何反矩陣(inverse matrix)存在,則該預定後處理矩陣不等於該第二子矩陣之該轉置矩陣之該反矩陣,否則,該預定後處理矩陣不是該第二子矩陣之該轉置矩陣之任何衍生物; 其中該處理電路控制該控制器將該組資料之一碼字(codeword)寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正,其中該碼字包含該組資料與該奇偶校驗碼。
  19. 如申請專利範圍第18項所述之控制器,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定奇偶校驗矩陣並非該預定編碼轉換矩陣。
  20. 如申請專利範圍第18項所述之控制器,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定後處理矩陣並非該預定編碼轉換矩陣。
TW106130465A 2017-01-03 2017-01-03 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 TWI651730B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW106130465A TWI651730B (zh) 2017-01-03 2017-01-03 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106130465A TWI651730B (zh) 2017-01-03 2017-01-03 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器

Publications (2)

Publication Number Publication Date
TW201839775A TW201839775A (zh) 2018-11-01
TWI651730B true TWI651730B (zh) 2019-02-21

Family

ID=65033908

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106130465A TWI651730B (zh) 2017-01-03 2017-01-03 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器

Country Status (1)

Country Link
TW (1) TWI651730B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884642B2 (en) 2019-03-27 2021-01-05 Silicon Motion, Inc. Method and apparatus for performing data-accessing management in a storage server
TWI772034B (zh) * 2021-05-21 2022-07-21 國立中山大學 記憶體內運算系統

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271850B2 (en) * 2005-12-29 2012-09-18 Intel Corporation Fast low-density parity-check code encoder
US20120240008A1 (en) * 2011-03-17 2012-09-20 Kabushiki Kaisha Toshiba Encoder and storage apparatus
US8578252B2 (en) * 2007-12-19 2013-11-05 Panasonic Corporation Encoder, decoder, transmitting apparatus, and receiving apparatus
TWI419481B (zh) * 2009-12-31 2013-12-11 Nat Univ Tsing Hua 低密度奇偶檢查碼編解碼器及其方法
US8924814B2 (en) * 2012-08-28 2014-12-30 Seagate Technology Llc Write management using partial parity codes
US20160248543A1 (en) * 2015-02-24 2016-08-25 Samsung Electronics Co., Ltd. Transmitter and repetition method thereof

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271850B2 (en) * 2005-12-29 2012-09-18 Intel Corporation Fast low-density parity-check code encoder
US8578252B2 (en) * 2007-12-19 2013-11-05 Panasonic Corporation Encoder, decoder, transmitting apparatus, and receiving apparatus
TWI419481B (zh) * 2009-12-31 2013-12-11 Nat Univ Tsing Hua 低密度奇偶檢查碼編解碼器及其方法
US20120240008A1 (en) * 2011-03-17 2012-09-20 Kabushiki Kaisha Toshiba Encoder and storage apparatus
US8924814B2 (en) * 2012-08-28 2014-12-30 Seagate Technology Llc Write management using partial parity codes
US20160248543A1 (en) * 2015-02-24 2016-08-25 Samsung Electronics Co., Ltd. Transmitter and repetition method thereof

Also Published As

Publication number Publication date
TW201839775A (zh) 2018-11-01

Similar Documents

Publication Publication Date Title
TWI602188B (zh) 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
US11243838B2 (en) Methods and apparatuses for error correction
US10985780B2 (en) Error correction circuit, and memory controller having the error correction circuit and memory system having the memory controller
TW201601163A (zh) 用來控制一記憶裝置之方法以及記憶裝置與控制器
US10621035B2 (en) Techniques for correcting data errors in memory devices
US11294589B2 (en) Method for performing access control in a memory device, associated memory device and controller thereof
CN113064547B (zh) 有局部顺序信息的校验矩阵的保护的数据存取方法及设备
KR20180010447A (ko) 컨트롤러, 반도체 메모리 시스템 및 그의 동작 방법
TWI651730B (zh) 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
TWI740499B (zh) 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備
TW201926043A (zh) 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器
US10223198B2 (en) Error rate reduction
US10855316B2 (en) Error correction code (ECC) operations in memory
US20210013905A1 (en) Memory system with low-complexity decoding and method of operating such memory system
US10141072B2 (en) Efficient encoder based on modified RU algorithm
TWI721817B (zh) 使用藉助於超前處理之資料保護的非揮發性記憶體存取方法以及設備
TWI759672B (zh) 解碼方法及相關的快閃記憶體控制器與電子裝置
TWI684856B (zh) 解碼方法及相關的快閃記憶體控制器與電子裝置