TW201335943A - 決定同位元檢查陣列之方法以及快閃記憶體系統 - Google Patents
決定同位元檢查陣列之方法以及快閃記憶體系統 Download PDFInfo
- Publication number
- TW201335943A TW201335943A TW102105953A TW102105953A TW201335943A TW 201335943 A TW201335943 A TW 201335943A TW 102105953 A TW102105953 A TW 102105953A TW 102105953 A TW102105953 A TW 102105953A TW 201335943 A TW201335943 A TW 201335943A
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- blocks
- candidate
- mxn
- parity check
- Prior art date
Links
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/033—Theoretical methods to calculate these checking codes
- H03M13/036—Heuristic code construction methods, i.e. code construction or code search based on using trial-and-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/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
一種決定用於快閃記憶體系統之同位元檢查陣列之方法。同位元檢查陣列包括MxN個區塊。此方法包括產生一第一候選方塊組以作為MxN個區塊中一第一方塊組的候選者;計算對應第一候選方塊組之複數第一估計結果;根據該些第一估計結果來決定MxN個區塊中至少一第一區塊的內容;產生一第二候選方塊組以作為MxN個區塊中一第二方塊組的候選者;藉由考慮第一區塊的內容來計算對應第二候選方塊組之複數第二估計結果;以及根據該些第二估計結果來決定MxN個區塊中至少一第二區塊的內容。
Description
本發明係有關於一種決定同位元檢查陣列的方法,用於快閃記憶體系統,特別是有關於一種藉由徹底地計算對應任何可能候選區塊之複數估計結果來決定低密度同位元檢查(low-density parity check)之同位元檢查陣列的方法,而同位元檢查陣列係用來對快閃記憶體系統所儲存之資料進行解碼。
在電腦與其他電子裝置之間的資訊通訊可以藉由使用各種不同的標準以及技術來實施。通道編碼以及錯誤校正技術可被使用來減少在所接收之信號中由失真以及其他擾亂所引起的錯誤。此編碼以及錯誤校正可藉由在傳輸通道之末端使用編碼器以及解碼器來實施。
舉例來說,關於低密度同位元檢查碼(low-density parity check code,LDPC code,亦稱為低密度奇偶檢查碼)的任何規則可使用在快閃記憶體系統以對接收到之資料進行編碼,且編碼後資料(碼字(codeword)),接著可儲存在快閃記憶體中。另一方面,疊代解碼器(iterative decoder)通常在對字碼進行解碼時收斂在一正確解碼數值上。在一實施中,係在接收端上使用軟性決定(soft-decision)訊息傳遞演算法
(message passing algorithm,MPA)以執行LDPC解碼。接收到之複數位元(例如通道數值)視為複數變量,且每一變量表示數值是”0”或”1”的機率,且這些變量以解碼演算法來表示為對數相似比率(log likelihood ratio,LLR)。訊息傳遞演算法將來自變量節點之訊息傳(例如LLR)送至檢查節點,計算當前疊代的校正子(syndrome),將來自檢查節點之訊息(例如LLR)送至變量節點,以及以相同方法進行疊代直到達到收斂為止(例如校正子的檢查位元全都為”0”)。
然而,LDPC碼固有的問題之一是陷阱集合(trapping set)的存在。一個陷阱集合是在任何既定數量的疊代後無法被解碼為正確數值的一組位元組。就具有高訊雜比(signal-to-signal ratio,SNR)加成性白高斯雜訊(additive white Gaussian noise,AWGN)的LDPC解碼器而論,所接收之複數位元的錯誤位元數量通常較小。然而,假使錯誤位在一些特定變量節點時,這些錯誤會回饋錯誤的可靠度數值,且導致一個陷阱集合。簡單來說,當對一接收到之字碼進行解碼時,LDPC解碼器可能遭遇到一或多個陷阱集合,這阻止解碼器正確地對接收之字碼進行解碼。一特定LDPC碼的最小位元錯誤率可由固有存在於LDPC碼內的陷阱集合數量來支配。
因此,需要有效地找出或決定其固有具有最小數量陷阱集合的LDPC碼。換句話說,需要有效地找出或決定一同位元檢查陣列,用以定義在錯誤校正中具有最佳效能之LDPC碼。
根據本發明之示範實施例,提出一種藉由徹底地計算對應任何可能候選區塊之複數估計結果來決定低密度同位元檢查(low-density parity check)之同位元檢查陣列的方法,而同位元檢查陣列係用來對快閃記憶體系統所儲存之資料進行解碼,且提供一種相關的記憶體系統,以解決上述問題。
本發明之一示範實施例提出一種決定一同位元檢查陣列之方法。此同位元檢查陣列用於一快閃記憶體系統。快閃記憶體系統自一快閃記憶體讀取一資料且以同位元檢查陣列來對該資料進行解碼。同位元檢查陣列定義一低密度同位元檢查碼(low-density parity check code,LDPC code)且包括MxN個區塊,其中,M表示在同位元檢查陣列中一行之區塊數量,且N表示在同位元陣列中一列之區塊數量。此方法包括步驟:產生一第一候選方塊組以作為MxN個區塊中一第一方塊組的候選者;計算對應第一候選方塊組之複數第一估計結果;根據該些第一估計結果來決定MxN個區塊中至少一第一區塊的內容;產生一第二候選方塊組以作為MxN個區塊中一第二方塊組的候選者;藉由考慮第一區塊的內容來計算對應第二候選方塊組之複數第二估計結果;以及根據該些第二估計結果來決定MxN個區塊中至少一第二區塊的內容。
本發明之另一示範實施例提出一種快閃記憶體系統。此快閃記憶體系統使用一同位元檢查陣列。快閃記憶體系統自一快閃記憶體讀取一資料且以同位元檢查陣列來對資料進行解碼。同位元檢查陣列定義一低密度同位元檢查碼(low-density parity check code,LDPC code)且包括MxN個區
塊,其中,M表示在同位元檢查陣列中一行之區塊數量,且N表示在同位元陣列中一列之區塊數量。同位元檢查陣列依照以下步驟來決定:產生一第一候選方塊組以作為MxN個區塊中一第一方塊組的候選者;計算對應第一候選方塊組之複數第一估計結果;根據該些第一估計結果之一最佳結果來決定MxN個區塊中至少一第一區塊的內容;產生一第二候選方塊組以作為MxN個區塊中一第二方塊組的候選者;藉由考慮第一區塊的內容來計算對應第二候選方塊組之複數第二估計結果;以及根據該些第二估計結果來決定MxN個區塊中至少一第二區塊的內容。
1000‧‧‧記憶體系統
1100‧‧‧快閃記憶體
1110‧‧‧記憶胞(閘極浮接電晶體)
1200‧‧‧記憶體控制器
1210‧‧‧控制邏輯
1220‧‧‧ECC電路
1222‧‧‧ECC解碼器
1224‧‧‧ECC編碼器
B1,1、B2,1、......、BN,M‧‧‧區塊
I0、I1、I2、I3、......、IZ‧‧‧候選區塊
M‧‧‧在同位元陣列中一行之區塊數量
M_0......M_K‧‧‧記憶胞
N‧‧‧在同位元陣列中一列之區塊數量
P_0、P_1、P_2、......、P_N‧‧‧實體頁面
VG_0......VG_N‧‧‧控制閘極電壓
Z‧‧‧水平/垂直方向尺寸
第1圖表示根據本發明一示範實施例之快閃記憶體系統;第2圖表示用於快閃記憶體系統內之同位元檢查陣列;第3圖表示可用於同位元檢查陣列之候選方塊;第4圖表示根據本發明一示範實施例之第一候選方塊組,其可作為同位元檢查陣列之第一方塊組的候選者;第5圖表示決定來自第一候選區塊組中之一最佳結果之樹狀圖(trellis diagram);第6圖表示根據本發明一示範實施例之第二候選方塊組,其可作為同位元檢查陣列之第二方塊組的候選者;第7圖表示決定來自第二候選區塊組中之一最佳結果之樹狀圖;第8圖表示根據本發明另一示範實施例之第一候選方塊
組,其可作為同位元檢查陣列之第一方塊組的候選者;第9圖表示決定來自第一候選區塊組中之一最佳結果之樹狀圖;第10圖表示根據本發明另一示範實施例之第二候選方塊組,其可作為同位元檢查陣列之第二方塊組的候選者;第11圖表示決定來自第二候選區塊組中之一最佳結果之樹狀圖。
為使本發明之上述目的、特徵和優點能更明顯易懂,下文特舉一較佳實施例,並配合所附圖式,作詳細說明如下。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定元件。所屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同一個元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及後續的請求項當中所提及的“包括”和“包含”係為一開放式的用語,故應解釋成“包含但不限定於”。以外,“耦接”一詞在此係包含任何直接及間接的電性連接手段。間接的電性連接手段包括通過其他裝置進行連接。
第1圖係表示根據本發明實施例之一快閃記憶體系統。參閱第1圖,示範之記憶體系統1000包括快閃記憶體1100以及記憶體控制器1200。在此示範實施例中,快閃記憶體1100可以是NAND型快閃記憶體,其包括複數實體頁面(physical
page)P_0、P_1、P_2、......、以及P_N,其中,實體頁面P_0~P_N之每一者包括複數記憶胞(例如閘極浮接電晶體)1110。舉例來說,關於將被讀取之一目標實體頁面P_0,其包括記憶胞M_0~M_K。為了讀取儲存於目標實體頁面P_0之記憶胞M_0~M_K內的資料,應適當地設定控制閘極電壓VG_0~VG_N。舉例來說,控制閘極電壓VG_0~VG_N應適當地設定,以確保實體頁面P_1~P_N之所有記憶胞(例如閘極浮接電晶體)1110都導通。在每一記憶胞1110配置來儲存N個位元(例如,三個位元,包括最小有效位元(least significant bit(LSB)、中間有效位元(central significant bit(CSB)、以及最大有效位元(most significant bit(MSB))的情況下,快閃記憶體110設定控制閘極電壓VG_0具有(2N-1)個位準,以定義目標實體頁面P_0之每一記憶胞1110的所有N個位元。此外,為了將資料儲存至目標實體頁面P_0之記憶胞M_0~M_K,資料應適當地解碼,以確保資料儲存的正確性。
再次參閱第1圖,記憶體控制器1200係配置來控制快閃記憶體1100的存取(讀/寫),且包括控制邏輯1210以及ECC(error-correcting code)電路1220,但不以此為限。請注意,只有有關於本發明技術特徵之元件顯示於第1圖。即是,記憶體控制器1200可能包括其他元件來支援其他功能。一般而言,當接收關於儲存於目標實體頁面P_0之記憶胞M_0~M_K之資料的一讀取請求時,控制邏輯1210運作來控制快閃記憶體1100去讀取所請求的資料。此技術領域之人士已知,一實體頁面之部分記憶胞1110係用來儲存ECC資訊(例如一ECC碼)。因此,
ECC電路1220係運作來對讀取自該實體頁面之讀出資訊(例如一字碼)執行ECC操作。在此示範實施例中,ECC電路1220包括ECC解碼器1222以及ECC編碼器1224。ECC解碼器1222用來檢查讀出資訊的正確性,藉此偵測任何錯誤位元的存在。當偵測到任何錯誤位元存在時,ECC解碼器1222運作來校正發現自被檢查之讀出資訊的錯誤位元。然而,當存在於讀出資訊之錯誤位元的數量超過可被ECC解碼器1222偵測到之錯誤位元的最大數量時,ECC解碼器1222則指示出此讀出資訊包括不可修正之錯誤位元。因此,控制邏輯1210可能致能關於目標實體頁面P_0之再次讀取操作以獲得可通過由電路1220所執行之同位元檢查的讀出資訊,或者可能報告讀出失敗。再次讀取操作降低勒快閃記憶體系統的效能。而讀取失敗幾乎無法被使用者所接受。
提高ECC電路1220之錯誤校正能力的一種方式是選擇用於解碼之一適當錯誤校正碼。當接收到關於儲存於目標實體頁面P_1之記憶胞M_0~M_K之資料的一讀取請求時,控制邏輯1210運作來控制快閃記憶體1100去讀取資料。如上所述,資料已適當地被編碼以確保資料儲存的正確性。ECC解碼器1222係實施來對讀取自具有同位元檢查陣列之快閃記憶體1100的資料進行解碼。此同位元檢查陣列可以硬體、軟體、或韌體形式來實施。一般而言,ECC解碼器1222所使用之同位元檢查陣列定義一特定錯誤校正碼,例如一個基於訊息傳遞演算法(message passing algorithm,MPA)之編碼或一個低密度同位元檢查碼(low-density parity check code,LDPC code)。第2
圖係表示快閃記憶體系統1000所使用之同位元檢查陣列。同位元檢查陣列包括MxN個區塊,即B1,1、B2,1、......、以及BN,M其中,M表示在同位元陣列中一行之區塊數量,而N表示在同位元陣列中一列之區塊數量。舉例來說,在同位元檢查陣列之第一行中,具有M個區塊,包括B1,1、B1,2、......、以及B1,M;在同位元檢查陣列之第一列中,具有N個區塊,包括B1,1、B2,1、......、以及BN,1。MxN個區塊中每一方塊為一正方形陣列,且具有水平方向尺寸以及垂直方向尺寸。MxN個區塊中每一方塊的選擇為產生適合於快閃記憶體系統1000之同位元檢查陣列的關鍵點。請注意,同位元檢查陣列定義了準循環低密度同位元檢查碼(quasi-cyclic LDPC(QC-LPDC)code)。更詳細內容將於下文說明。
第3圖係表示根據本發明實施例可用於同位元檢查陣列之候選區塊。如上所述,MxN個區塊中每一方塊為一正方形陣列,且具有水平方向尺寸以及垂直方向尺寸。所有的候選區塊可用於同位元檢查陣列,且具有相同的水平方向尺寸以及垂直方向尺寸Z。一初始候選區塊I0為所有位元都為”0”之一ZxZ正方形陣列。第一候選區塊I1為一尺寸Z的相同正方形。尺寸Z的相同正方形為一ZxZ正方形陣列,其具有在主要對角線上的”1”以及在別處的”0”。其他的候選區塊為偏移的相同正方形,具有相異的偏移數值。舉例來說,一第二候選方塊I2為一偏移的相同正方形,其具有偏移數值1;一第三候選方塊I3為一偏移的相同正方形,其具有偏移數值2;一第Z候選方塊IZ為一偏移的相同正方形,其具有偏移數值(Z-1)。請注意,區塊尺
寸(即Z)、在同位元檢查陣列中一行上的區塊數量(即列權重M)、在同位元檢查陣列中一列上的區塊數量(即行權重N)應可根據所期望的編碼率以及期望的編碼長度來預先決定。候選方塊中的任何方塊可被決定為MxN個區塊中的一區塊。在同位元檢查陣列中,候選區塊的結合將支配同位元檢查陣列之特性與效能。找出或決定在一預先決定區塊尺寸、列權重、以及行權重下一最佳同位元檢查陣列的方式是,徹底地找出候選區塊的任何可能組合並計算所有的對應結果(每一種結合的效能)。在此方式下,可找出最佳同位元檢查陣列,且浪費較多一些時間和資源。撤底找出候選區塊的任何可能組合並計算所有的對應結果的複雜度將與(Z+1)M*N成比例。根據本發明一實施例,有效地尋找或決定同位元檢查陣列之方法將於下文詳細敘述。
參閱第4圖與第5圖,第4圖係說明根據本發明實施例之第一候選區塊組,其作為同位元檢查陣列之第一區塊組的候選者;第5圖係表示決定來自第一候選區塊組中之一最佳結果之樹狀圖(trellis diagram)。在第4圖中,同位元檢查陣列之第一區塊組包括區塊B1,1、B1,2、B1,3。在此示範實施例中,第一區塊組中區塊的數量為三個,然而,第一區塊組中區塊的數量僅為一個例子而並非限制。第一區塊組中區塊的數量可以視為樹狀圖的視窗尺寸。此視窗尺寸應預先決定。對於在MxN個區塊中一區塊而言,例如區塊B1,1,此區塊的內容可決定為所有候選區塊中任一區塊。舉例來說,區塊B1,1的內容可決定為候選區塊I0、I1、I2、I3、......、以及IZ中任一者;區塊B1,2的內
容可決定為候選區塊I0、I1、I2、I3、......、以及IZ中任一者;區塊B1,3的內容可決定為候選區塊I0、I1、I2、I3、......、以及IZ中任一者。在第5圖中,樹狀圖說明了候選區塊的所有可能的組合。樹狀圖之每一分支為候選區塊之一可能組合。作為同位元檢查陣列之第一區塊組之候選者的第一候選區塊組包括候選區塊的所有可能組合,即樹狀圖之所有分支。在一示範實施例中,如第4圖所示,區塊B1,1之內容推定為第一候選區塊I1,區塊B1,2之內容推定為第二候選區塊I2,且區塊B1,3之內容推定為第三候選區塊I3,以上為候選區塊的一種可能組合。具有此可能組合(區塊B1,1之內容=第一候選區塊I1,區塊B1,2之內容=第二候選區塊I2,且區塊B1,3之內容=第三候選區塊I3)之同位元檢查陣列的效能(結果)可被估計。此外,對應候選區塊之所有可能組合(即第一候選區塊組)的所有結果可被估計。換句話說,對應(Z+1)3個分支的(Z+1)3個結果可被估計。第一區塊(即區塊B1,1)之內容可根據複數第一估計結果中一最佳結果來決定。舉例來說,具有組合(區塊B1,1之內容=第一候選區塊I1,區塊B1,2之內容=第二候選區塊I2,且區塊B1,3之內容=第三候選區塊I3)之同位元檢查陣列具有一最佳效能。因此,區塊B1,1之內容決定為第一候選區塊I1。
LDPC碼的效能主要是根據瀑布區域(water fall)以及錯誤基數區域(error floor region)來判定。特別是,對於一儲存系統而言,用來指示LDPC碼之一最小位元錯誤率的錯誤基數區域是重要的特性。錯誤基數區域係由以環長組(girth bundle)構成之陷阱集合所支配。因此,由上述複數第
一估計結果中決定最佳結果的方式是考慮上述複數之每一結果的環長數量。此環長具有不同的類型。此環長是在複數檢查節點與複數變量節點之間形成環的傳遞路徑(pass circle)。根據傳遞長度,具有環長4(girth 4)、環長6(girth 6)、環長8(girth 8)等等。此環長的一個類型稱為環長4(girth four)。環長4係由兩個變量節點以及兩個檢查節點所組成,其中,每一變量節點具有兩個訊息傳遞路徑,分別連接兩個檢查節點。此環長的一個類型稱為環長6(girth six)。環長6係由三個變量節點以及三個檢查節點所組成,其中,每一變量節點具有兩個訊息傳遞路徑,分別連接兩個檢查節點。一個具有少量環長4之LDPC碼為一較佳編碼。同樣地,一個具有少量環長6之LDPC碼為一較佳編碼。相較於環長6,環長4將更加嚴重地降低LDPC碼的效能。因此,當在上述複數第一估計結果中決定最佳結果時,在環長4應視為較高優先考慮事項。最佳結果具有最小數量的環長4(或不具有環長4)。假使上述複數第一估計結果中有多個結果具有相同數量的環長4(或不具有環長4),則應考慮環長6之數量來決定最佳結果。在此情況下,最佳結果具有最小數量的環長6。除此之外,假使上述複數第一估計結果中有多個結果具有相同數量的環長4以及環長6,則任意決定上述多個結果中的一者作為最佳結果。請注意,我們可以輕易地找到不具有環長4的LDPC碼,但非常困難找到不具有環長6之編碼。
在決定區塊B1,1之內容後,樹狀圖的視窗可偏移到下一階層。參閱第6圖與第7圖,第6圖係說明根據本發明實施
例之第二候選區塊組,其作為同位元檢查陣列之第二區塊組的候選者;第7圖係表示決定來自第二候選區塊組中之一最佳結果之樹狀圖。同樣地,在第6圖中,同位元檢查陣列之第二區塊組包括區塊B1,2、B1,3、B1,4。此時,區塊B1,1之內容決定為第一候選區塊I1。對於在MxN個區塊中一第二區塊而言,例如區塊B1,2,此區塊的內容可決定為所有候選區塊中任一區塊。舉例來說,區塊B1,2的內容可決定為候選區塊I0、I1、I2、I3、......、以及IZ中任一者;區塊B1,3的內容可決定為候選區塊I0、I1、I2、I3、......、以及IZ中任一者;區塊B1,4的內容可由候選區塊I0、I1、I2、I3、......、以及IZ中任一者。在第7圖中,樹狀圖說明了候選區塊的所有可能的組合。樹狀圖之每一分支為候選區塊之一可能組合。作為同位元檢查陣列之第二區塊組之候選者的第二候選區塊組包括候選區塊的所有可能組合,即樹狀圖之所有分支。在一示範實施例中,如第6圖所示,區塊B1,1之內容推定為第一候選區塊I1,區塊B1,2之內容推定為第二候選區塊I2,區塊B1,3之內容推定為第三候選區塊I3,且區塊B1,4之內容推定為第四候選區塊I4,以上為候選區塊的一種可能組合。具有此可能組合(區塊B1,1之內容=第一候選區塊I1,區塊B1,2之內容=第二候選區塊I2,區塊B1,3之內容=第三候選區塊I3,且區塊B1,4之內容=第四候選區塊I3)之同位元檢查陣列的效能(結果)可被估計。在區塊B1,1之內容決定為候選區塊I1的情況下,此外,對應候選區塊之所有可能組合(即第二候選區塊組)的所有結果可被估計。換句話說,對應(Z+1)3個分支的(Z+1)3個結果可被估計。第一區塊(即區塊B1,2)之內
容可根據複數第二估計結果中一最佳結果來決定。舉例來說,具有組合(區塊B1,1之內容=第一候選區塊I1,區塊B1,2之內容=第二候選區塊I2,區塊B1,3之內容=第三候選區塊I3,且區塊B1,4之內容=第四候選區塊I4)之同位元檢查陣列具有一最佳效能。因此,區塊B1,2之內容決定為第二候選區塊I2。
請注意,決定效能的一重要規則也包括考慮一編碼的環長數量。因此,為了簡潔而可省略進一步說明。此外,同位元檢查陣列之其他區塊可以相似方式來產生。因此,為了簡潔而可省略進一步說明。本發明實施例之優點在於可大幅減少用來決定同位元檢查陣列資源。本發明實施例之另一優點在於,可找到候選區塊的大部分組合。因此,儘管編碼搜尋可能不徹底,然而,卻可找得相對較佳的編碼。關於更減少計算資源方面,可以增加在同位元檢查陣列之相異複數列或行之間的相依性。更詳細之內容將於下文說明。
參閱第8圖以及第9圖,第8圖係說明根據本發明實施例之第一候選區塊組,其作為同位元檢查陣列之第一區塊組的候選者;第9圖係表示決定來自第一候選區塊組中之一最佳結果之樹狀圖。在第7圖中,同位元檢查陣列之第一區塊組包括區塊B1,1、B1,2、B1,3、B2,2、B2,3、B2,4、B3,3、B3,4、B3,5、......、以及BM,M、BM-1,M、BM-2,M。對於在MxN個區塊中一區塊而言,例如區塊B1,1,此區塊的內容可決定為所有候選區塊中任一區塊。舉例來說,除了已被推定為其他區塊之內容的候選區塊以外,區塊B1,1的內容可決定為候選區塊I0、I1、I2、I3、......、以及IZ中任一者;除了已被推定為其他區塊之內容的候選區塊
以外,區塊B1,2的內容可決定為候選區塊I0、I1、I2、I3、......、以及IZ中任一者;除了已被推定為其他區塊之內容的候選區塊以外,區塊B1,3的內容可決定為候選區塊I0、I1、I2、I3、......、以及IZ中任一者。此外,為了減少複雜度,位在MxN個區塊中y行與x列上的一區塊的內容以及位在MxN個區塊中y+1行與x+1列上的一區塊的內容應相同。在其他實施例中,位在MxN個區塊中y行與x列上的一區塊的內容以及位在MxN個區塊中y+2行與x+1列上的一區塊的內容應相同;或者位在MxN個區塊中y行與x列上的一區塊的內容以及位在MxN個區塊中y+1行與x+2列上的一區塊的內容應相同。只要在同位元檢查陣列之相異行與列之間存在有相依性即可。樹狀圖之每一分支為候選區塊之一可能組合。作為同位元檢查陣列之第一區塊組之候選者的第一候選區塊組包括候選區塊的所有可能組合,即樹狀圖之所有分支。在一示範實施例中,如第8圖所示,區塊B1,1、B2,2、......、以及Bk,k之內容推定為第一候選區塊I1,區塊B1,2、B2,3、......、以及BM-1,M之內容推定為第二候選區塊I2,且區塊B1,3、B2,4、......、以及BM-2,M之內容推定為第三候選區塊I3,以上為候選區塊的一種可能組合。換句話說,當估計同位元檢查陣列之效能時,位在MxN個區塊中y行與x列上的一區塊的內容以及位在MxN個區塊中y+1行與x+1列上的一區塊的內容應推定為相同。具有此可能組合(區塊B1,1、B2,2、......、以及Bk,k之內容=第一候選區塊I1,區塊B1,2、B2,3、......、以及BM-1,M之內容=第二候選區塊I2,且區塊B1,3、B2,4、......、以及BM-2,M之內容=第三候選區塊I3)之同位元檢查陣列的效能(結果)可被估
計。此外,對應候選區塊之所有可能組合(即第一候選區塊組)的所有結果可被估計。換句話說,對應(Z+1)*Z*(Z-1)個分支的(Z+1)*Z*(Z-1)個結果可被估計。第一區塊組的區塊數量大幅增加,且更多區塊的內容可以同時決定。第一區塊(即區塊B1,1、B2,2、......、以及BM,M)之內容可根據複數第一估計結果中一最佳結果來決定。舉例來說,具有組合(區塊B1,1、B2,2、......、以及Bk,k之內容=第一候選區塊I1,區塊B1,2、B2,3、......、以及BM-1,M之內容=第二候選區塊I2,且區塊B1,3、B2,4、......、以及BM-2,M之內容=第三候選區塊I3)之同位元檢查陣列具有一最佳效能。因此,區塊B1,1、B2,2、......、以及Bk,k之內容決定為第一候選區塊I1。換句話說,位在MxN個區塊中第一行上之區塊的內容與位在MxN個區塊中二行上之區塊的內容具有相依性。
在決定區塊B1,1、區塊B2,2、......、以及區塊Bk,k之內容後,樹狀圖的視窗可偏移到下一階層。參閱第10圖以及第11圖,第10圖係說明根據本發明實施例之第二候選區塊組,其作為同位元檢查陣列之第二區塊組的候選者;第11圖係表示決定來自第二候選區塊組中之一最佳結果之樹狀圖。同樣地,在第10圖中,同位元檢查陣列之第二區塊組包括區塊B1,2、B1,3、B1,4、B2,3、B2,4、B2,5、B3,4、B3,5、B3,6......、以及BM-1,M、BM-2,M、BM-3,M。此時,區塊B1,1、區塊B2,2、......、以及區塊Bk,k之內容決定為第一候選區塊I1。為了進一步減少複雜度,根據本發明之一示範實施例,第一候選區塊I1不能被決定為同位元檢查陣列之其他區塊的內容,但不以此為限。對於在MxN個區塊中第
二區組塊而言,例如區塊B1,2、B1,3、B1,4、B2,3、B2,4、B2,5、B3,4、B3,5、B3,6......、以及BM-1,M、BM-2,M、BM-3,M,這些區塊的內容可決定為所有候選區塊中任一區塊。舉例來說,除了已被推定為其他區塊之內容的候選區塊以外,區塊B1,2、B2,3、B3,4、......、以及BM-1,M的內容可決定為候選區塊I0、I1、I2、I3、......、以及IZ中任一者;除了已被推定為其他區塊之內容的候選區塊以外,區塊B1,3、B2,4、B3,5......、以及BM-2,M的內容可決定為候選區塊I0、I1、I2、I3、......、以及IZ中任一者;除了已被推定為其他區塊之內容的候選區塊以外,區塊B1,4、B2,5、B3,6......、以及BM-3,M的內容可決定為候選區塊I0、I1、I2、I3、......、以及IZ中任一者。同樣地,為了減少複雜度,位在MxN個區塊中y行與x列上的一區塊的內容以及位在MxN個區塊中y+1行與x+1列上的一區塊的內容應相同。在第11圖中,樹狀圖說明了候選區塊的所有可能組合。樹狀圖之每一分支為候選區塊之一可能組合。作為同位元檢查陣列之第二區塊組之候選者的第二候選區塊組包括候選區塊的所有可能組合,即樹狀圖之所有分支。在一示範實施例中,如第10圖所示,區塊B1,1k之內容推定為第一候選區塊I1,區塊B1,2、B2,3、B3,4、......、以及BM-1,M之內容推定為第二候選區塊I2,區塊B1,3、B2,4、B3,5......、以及BM-2,M之內容推定為第三候選區塊I3,且區塊B1,4、B2,5、B3,6......、以及BM-3,M之內容推定為第四候選區塊I4,以上為候選區塊的一種可能組合。具有此可能組合(區塊B1,1、B2,2、......、以及BM,M之內容=第一候選區塊I1,區塊B1,2、B2,3、B3,4、......、以及BM-1,M之內容=第二候選區塊I2,區塊B1,3、B2,4、
B3,5......、以及BM-2,M之內容=第三候選區塊I3,且區塊B1,4、B2,5、B3,6......、以及BM-3,M之內容=第四候選區塊I4)之同位元檢查陣列的效能(結果)可被估計。在區塊B1,1、B2,2、......、以及BM,M之內容決定為第一候選區塊I1的情況下,對應候選區塊之所有可能組合(即第二候選區塊組)的所有結果可被估計。換句話說,對應(Z-1)*Z*(Z-2)個分支的(Z-1)*Z*(Z-2)個結果可被估計。第二區塊(即區塊B1,2、B2,3、B3,4、......、以及BM-1,M)之內容可根據複數第二估計結果中一最佳結果來決定。舉例來說,具有組合(區塊B1,1、B2,2、......、以及BM,M之內容=第一候選區塊I1,區塊B1,2、B2,3、B3,4、......、以及BM-1,M之內容=第二候選區塊I2,區塊B1,3、B2,4、B3,5......、以及BM-2,M之內容=第三候選區塊I3,且區塊B1,4、B2,5、B3,6......、以及BM-3,M之內容=第四候選區塊I4)之同位元檢查陣列具有一最佳效能。因此,區塊B1,2、B2,3、B3,4、......、以及BM-1,M之內容決定為第一候選區塊I2。
請注意,決定效能的一重要規則也包括考慮一編碼的環長數量。因此,為了簡潔而可省略進一步說明。此外,同位元檢查陣列之其他區塊可以相似方式來產生。因此,為了簡潔而可省略進一步說明。本發明實施例之優點在於可大幅減少用來決定同位元檢查陣列資源。本發明實施例之另一優點在於,可找到候選區塊的大部分組合。因此,本發明所執行之編碼搜尋可能近乎,且可找得相對較佳的編碼。
本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬技術領域中具有通常知識者,在
不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
B1,1、B1,2、B1,3‧‧‧區塊
I0、I1、I2、I3、......、IZ‧‧‧候選區塊
Claims (20)
- 一種決定一同位元檢查陣列之方法,其中,該同位元檢查陣列用於一快閃記憶體系統,該快閃記憶體系統自一快閃記憶體讀取一資料且以該同位元檢查陣列來對該資料進行解碼,該同位元檢查陣列定義一低密度同位元檢查碼(low-density parity check code,LDPC code)且包括MxN個區塊,M表示在該同位元檢查陣列中一行之區塊數量,且N表示在該同位元陣列中一列之區塊數量,決定該同位元檢查陣列之方法包括:產生一第一候選方塊組以作為該等MxN個區塊中一第一方塊組的候選者;計算對應該第一候選方塊組之複數第一估計結果;根據該等第一估計結果來決定該等MxN個區塊中至少一第一區塊的內容;產生一第二候選方塊組以作為該等MxN個區塊中一第二方塊組的候選者;藉由考慮該第一區塊的內容來計算對應該第二候選方塊組之複數第二估計結果;以及根據該等第二估計結果來決定該等MxN個區塊中至少一第二區塊的內容。
- 如申請專利範圍第1項所述之決定同位元檢查陣列之方法;其中,產生該第一候選方塊組以作為該等MxN個區塊中該第一方塊組的候選者之步驟包括: 決定一視窗之尺寸為W;以及產生具有ZW個候選方塊之該第一候選方塊組,以作為該等MxN個區塊中組複數區塊B1~BW之候選者;以及其中,產生該第二候選方塊組以作為該等MxN個區塊中該第二方塊組的候選者之步驟包括:產生具有ZW個候選方塊之該第二候選方塊組,以作為該等MxN個區塊中組複數區塊B2~BW+1之候選者。
- 如申請專利範圍第1項所述之決定同位元檢查陣列之方法,其中,該等估計結果中的一最佳結果係藉由考慮該等第一估計結果之每一者的環長4(girth four)的數量來決定。
- 如申請專利範圍第3項所述之決定同位元檢查陣列之方法,其中,該最佳結果具有最小數量之環長4,且假使該等第一估計結果中有多個結果具有相同數量之環長4,則考慮該等第一估計結果之每一者的環長6(girth six)的數量。
- 如申請專利範圍第4項所述之決定同位元檢查陣列之方法,其中,該最佳結果具有最小數量之環長6,且假使該等第一估計結果中有多個結果具有相同數量之環長6,則任意決定該等多個結果中的一者作為該最佳結果。
- 如申請專利範圍第1項所述之決定同位元檢查陣列之方法,其中,該第一區塊組包括位在該等MxN個區塊之一第一行之一區塊以及位在該等MxN個區塊之一第二行之一區塊,且位在該等MxN個區塊之該第一行之該區塊的內容 與位在該等MxN個區塊之該第二行之該區塊的內容具有相依性。
- 如申請專利範圍第6項所述之決定同位元檢查陣列之方法,其中,位在該等MxN個區塊之該第一行之該區塊以及位在該等MxN個區塊之該第二行之該區塊位於該等MxN個區塊之相異列。
- 如申請專利範圍第7項所述之決定同位元檢查陣列之方法,其中,位在該等MxN個區塊之該第一行之該區塊位在該等MxN個區塊之y行與x列,且位在該等MxN個區塊之該第二行之該區塊位在該等MxN個區塊之y+1行與x+1列。
- 如申請專利範圍第1項所述之決定同位元檢查陣列之方法,更包括:根據該等第一估計結果中的一最佳結果來決定該等MxN個區塊中之複數第一區塊的內容。
- 如申請專利範圍第1項所述之決定同位元檢查陣列之方法,其中,該等第二候選區塊組的內容不包括該第一區塊的內容。
- 一種快閃記憶體系統,該快閃記憶體系統使用一同位元檢查陣列,其中,該快閃記憶體系統自一快閃記憶體讀取一資料且以該同位元檢查陣列來對該資料進行解碼,該同位元檢查陣列定義一低密度同位元檢查碼(low-density parity check code,LDPC code)且包括MxN個區塊,M表示在該同位元檢查陣列中一行之區塊數量,且N表示在該同位元陣列中一列之區塊數量,且該同位元檢查陣列依照 以下步驟來決定:產生一第一候選方塊組以作為該等MxN個區塊中一第一方塊組的候選者;計算對應該第一候選方塊組之複數第一估計結果;根據該等第一估計結果之一最佳結果來決定該等MxN個區塊中至少一第一區塊的內容;產生一第二候選方塊組以作為該等MxN個區塊中一第二方塊組的候選者;藉由考慮該第一區塊的內容來計算對應該第二候選方塊組之複數第二估計結果;以及根據該等第二估計結果來決定該等MxN個區塊中至少一第二區塊的內容。
- 如申請專利範圍第11項所述之快閃記憶體系統,其中;產生該第一候選方塊組以作為該等MxN個區塊中該第一方塊組的候選者之步驟包括:決定一視窗之尺寸為W;以及產生具有ZW個候選方塊之該第一候選方塊組,以作為該等MxN個區塊中組複數區塊B1~BW之候選者;以及其中,產生該第二候選方塊組以作為該等MxN個區塊中該第二方塊組的候選者之步驟包括:產生具有ZW個候選方塊之該第二候選方塊組,以作為該等MxN個區塊中組複數區塊B2~BW+1之候選者。
- 如申請專利範圍第11項所述之快閃記憶體系統,其中,該等估計結果中的該最佳結果係藉由考慮該等第一估計結 果之每一者的環長4(girth four)的數量來決定。
- 如申請專利範圍第13項所述之快閃記憶體系統,其中,該最佳結果具有最小數量之環長4,且假使該等第一估計結果中有多個結果具有相同數量之環長4,則考慮該等第一估計結果之每一者的環長6(girth six)的數量。
- 如申請專利範圍第14項所述之快閃記憶體系統,其中,該最佳結果具有最小數量之環長6,且假使該等第一估計結果中有多個結果具有相同數量之環長6,則任意決定該等多個結果中的一者作為該最佳結果。
- 如申請專利範圍第11項所述之快閃記憶體系統,其中,該第一區塊組包括位在該等MxN個區塊之一第一行之一區塊以及位在該等MxN個區塊之一第二行之一區塊,且位在該等MxN個區塊之該第一行之該區塊的內容與位在該等MxN個區塊之該第二行之該區塊的內容具有相依性。
- 如申請專利範圍第16項所述之快閃記憶體系統,其中,位在該等MxN個區塊之該第一行之該區塊以及位在該等MxN個區塊之該第二行之該區塊位於該等MxN個區塊之相異列。
- 如申請專利範圍第17項所述之快閃記憶體系統,其中,位在該等MxN個區塊之該第一行之該區塊位在該等MxN個區塊之y行與x列,且位在該等MxN個區塊之該第二行之該區塊位在該等MxN個區塊之y+1行與x+1列。
- 如申請專利範圍第11項所述之快閃記憶體系統,其中,該等MxN個區塊中之複數第一區塊的內容係根據該等第一 估計結果中的該最佳結果來決定。
- 如申請專利範圍第11項所述之快閃記憶體系統,其中,該等第二候選區塊組的內容不包括該第一區塊的內容。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/402,725 US8739008B2 (en) | 2012-02-22 | 2012-02-22 | Method for determining parity check matrix utilized in flash memory system and related flash memory system thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201335943A true TW201335943A (zh) | 2013-09-01 |
TWI496157B TWI496157B (zh) | 2015-08-11 |
Family
ID=48983301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102105953A TWI496157B (zh) | 2012-02-22 | 2013-02-21 | 決定同位元檢查陣列之方法以及快閃記憶體系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8739008B2 (zh) |
CN (1) | CN103297061B (zh) |
TW (1) | TWI496157B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9092353B1 (en) * | 2013-01-29 | 2015-07-28 | Pmc-Sierra Us, Inc. | Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system |
US10230396B1 (en) | 2013-03-05 | 2019-03-12 | Microsemi Solutions (Us), Inc. | Method and apparatus for layer-specific LDPC decoding |
US9813080B1 (en) | 2013-03-05 | 2017-11-07 | Microsemi Solutions (U.S.), Inc. | Layer specific LDPC decoder |
US9590656B2 (en) | 2013-03-15 | 2017-03-07 | Microsemi Storage Solutions (Us), Inc. | System and method for higher quality log likelihood ratios in LDPC decoding |
US9450610B1 (en) | 2013-03-15 | 2016-09-20 | Microsemi Storage Solutions (Us), Inc. | High quality log likelihood ratios determined using two-index look-up table |
US9454414B2 (en) | 2013-03-15 | 2016-09-27 | Microsemi Storage Solutions (Us), Inc. | System and method for accumulating soft information in LDPC decoding |
US10332613B1 (en) | 2015-05-18 | 2019-06-25 | Microsemi Solutions (Us), Inc. | Nonvolatile memory system with retention monitor |
US9799405B1 (en) | 2015-07-29 | 2017-10-24 | Ip Gem Group, Llc | Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction |
US9886214B2 (en) | 2015-12-11 | 2018-02-06 | Ip Gem Group, Llc | Nonvolatile memory system with erase suspend circuit and method for erase suspend management |
US9892794B2 (en) | 2016-01-04 | 2018-02-13 | Ip Gem Group, Llc | Method and apparatus with program suspend using test mode |
US9899092B2 (en) | 2016-01-27 | 2018-02-20 | Ip Gem Group, Llc | Nonvolatile memory system with program step manager and method for program step management |
US10291263B2 (en) | 2016-07-28 | 2019-05-14 | Ip Gem Group, Llc | Auto-learning log likelihood ratio |
US10157677B2 (en) | 2016-07-28 | 2018-12-18 | Ip Gem Group, Llc | Background reference positioning and local reference positioning using threshold voltage shift read |
US10236915B2 (en) | 2016-07-29 | 2019-03-19 | Microsemi Solutions (U.S.), Inc. | Variable T BCH encoding |
KR20190038964A (ko) * | 2017-10-02 | 2019-04-10 | 에스케이하이닉스 주식회사 | 에러 정정 코드 유닛, 그것의 인코딩 및 디코딩 방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW539946B (en) * | 2001-08-07 | 2003-07-01 | Solid State System Company Ltd | Window-based flash memory storage system, and the management method and the access method thereof |
ATE323918T1 (de) * | 2001-09-21 | 2006-05-15 | Imec Inter Uni Micro Electr | Eine 2d fifo-vorrichtung für blockbasierte kodierung und verfahren dazu |
ES2356912T3 (es) * | 2003-05-30 | 2011-04-14 | Sony Corporation | Método de decodificación, dispositivo de decodificación, programa dispositivo de grabación/reproducción y método, y método y dispositivo de reproducción. |
US7295137B2 (en) * | 2005-03-01 | 2007-11-13 | The Texas A&M University System | Data encoding and decoding using Slepian-Wolf coded nested quantization to achieve Wyner-Ziv coding |
KR20110087268A (ko) * | 2008-09-26 | 2011-08-02 | 에이전시 포 사이언스, 테크놀로지 앤드 리서치 | 디코딩 회로 및 인코딩 회로 |
TW201126537A (en) * | 2010-01-20 | 2011-08-01 | Sunplus Technology Co Ltd | Memory utilization method for low density parity check code, low density parity check code decoding method and apparatus thereof |
-
2012
- 2012-02-22 US US13/402,725 patent/US8739008B2/en active Active
-
2013
- 2013-02-21 TW TW102105953A patent/TWI496157B/zh active
- 2013-02-22 CN CN201310057999.9A patent/CN103297061B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103297061B (zh) | 2016-12-28 |
US8739008B2 (en) | 2014-05-27 |
US20130219249A1 (en) | 2013-08-22 |
CN103297061A (zh) | 2013-09-11 |
TWI496157B (zh) | 2015-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI496157B (zh) | 決定同位元檢查陣列之方法以及快閃記憶體系統 | |
US8984376B1 (en) | System and method for avoiding error mechanisms in layered iterative decoding | |
US8806307B2 (en) | Interruption criteria for block decoding | |
US8595589B2 (en) | Quasi-cyclic low-density parity-check codes | |
TWI594583B (zh) | 硬決定輸入之一般化低密度同位檢查軟解碼 | |
JP5432367B2 (ja) | 書込み検証を使用した符号のエラーフロア軽減 | |
US10812112B2 (en) | Methods and decoder for soft input decoding of generalized concatenated codes | |
KR20140078610A (ko) | 치환 소행렬의 합을 사용하는 체크섬 | |
US20180076831A1 (en) | Partial sum computation for polar code decoding | |
US8799742B1 (en) | QC-LDPC decoder with list-syndrome decoding | |
US20170288698A1 (en) | Power saving for bit flipping decoding algorithm in ldpc decoder | |
WO2020108586A1 (zh) | 一种极化码译码方法及装置、多级译码器、存储介质 | |
US10848182B2 (en) | Iterative decoding with early termination criterion that permits errors in redundancy part | |
US11641213B2 (en) | Log-likelihood ratio mapping tables in flash storage systems | |
US20150317203A1 (en) | Code-Based Read Control for Data Storage Devices | |
US9219501B2 (en) | LDPC encoding/decoding method and device using same | |
Rajab et al. | Soft‐input bit‐flipping decoding of generalised concatenated codes for application in non‐volatile flash memories | |
KR20160002946A (ko) | 10gbase-t 시스템에서 ldpc 인코더의 방법 및 장치 | |
CN112468158A (zh) | 用于对码字进行译码的方法及译码器 | |
US9344116B2 (en) | Method for determining layer stoppage in LDPC decoding | |
CN113131947B (zh) | 译码方法、译码器和译码装置 | |
CN110708077B (zh) | Ldpc码大数逻辑译码方法、装置和译码器 | |
KR101496052B1 (ko) | 블록 단위 연접 bch 부호 성능 개선 및 오류마루 경감을 위해 순환 자리 이동을 활용하는 복호 기법 및 회로 | |
TWI812411B (zh) | 記憶體控制器及低密度同位元查核碼之位元翻轉方法 | |
US11218168B2 (en) | Method and apparatus for generating an LDPC code with a required error floor |