TWI521529B - 解碼方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
解碼方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI521529B TWI521529B TW103113690A TW103113690A TWI521529B TW I521529 B TWI521529 B TW I521529B TW 103113690 A TW103113690 A TW 103113690A TW 103113690 A TW103113690 A TW 103113690A TW I521529 B TWI521529 B TW I521529B
- Authority
- TW
- Taiwan
- Prior art keywords
- hard bit
- bit
- hard
- memory
- error
- Prior art date
Links
Classifications
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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
-
- 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
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
-
- 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
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種解碼方法,且特別是一種有關於低密度奇偶檢查碼的解碼方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,寫入至可複寫式非揮發性記憶體模組的資料會經過一個通道編碼。藉此,當從可複寫式非揮發性記憶體模組中讀取資料時,有機會回復這些資料中的錯誤。若此通道編碼所使用的是低密度奇偶檢查碼,則從可複寫式非揮發性記憶體模組所讀取的資料會經過一個迭代解碼。此迭代解碼是用以更新一個位元的可靠度。當資料中的錯誤越多時,則迭代解碼所需要的迭
代次數就會越多。然而,迭代次數越多則表示解碼的速度越慢。因此,如何增加解碼的速度,為此領域技術人員所關心的議題。
本發明提供一種解碼方法、記憶體儲存裝置及記憶體控制電路單元,可搜集額外的通道資訊作為錯誤更正的依據。
本發明的一範例實施例提供一種解碼方法,用於可複寫式非揮發性記憶體模組,可複寫式非揮發性記憶體模組包括多個記憶胞,解碼方法包括:根據至少一硬決策電壓讀取所述記憶胞,以取得至少一硬位元;對所述硬位元執行奇偶檢查程序,以取得多個校驗子(syndrome),其中所述硬位元是對應至所述校驗子的至少其中之一;根據所述校驗子判斷所述硬位元是否具有至少一錯誤;若所述硬位元具有所述錯誤,根據所述硬位元的通道資訊與對應於所述硬位元的校驗權重資訊來更新所述硬位元;以及若所述硬位元不具有所述錯誤,輸出所述硬位元。
在一範例實施例中,所述硬位元包括第一硬位元,若所述硬位元具有所述錯誤,根據所述硬位元的通道資訊與對應於所述硬位元的校驗權重資訊來更新所述硬位元的步驟包括:判斷所述校驗權重資訊中對應於第一硬位元的第一校驗權重資訊是否符合權重條件;若第一校驗權重資訊符合權重條件,判斷第一硬位元的通道資訊是否符合通道條件;若第一硬位元的通道資訊符合通道條件,更新第一硬位元;以及若第一硬位元的通道資訊不符
合通道條件,不更新第一硬位元。
在一範例實施例中,所述第一硬位元的通道資訊包括至少一第一軟位元,並且判斷第一硬位元的通道資訊是否符合通道條件的步驟包括:判斷所述第一軟位元是否符合第一狀態;若所述第一軟位元符合第一狀態,判定第一硬位元的通道資訊符合通道條件;以及若所述第一軟位元不符合第一狀態,判定第一硬位元的通道資訊不符合通道條件。
在一範例實施例中,若所述硬位元具有所述錯誤,所述解碼方法更包括:計數迭代次數;判斷迭代次數是否達到預設次數;若迭代次數沒有達到預設次數,設定通道條件為第一通道條件;以及若迭代次數達到預設次數,設定通道條件為第二通道條件,其中第一通道條件與第二通道條件不相同。
在一範例實施例中,所述解碼方法更包括:根據至少一軟決策電壓讀取所述記憶胞,以取得所述硬位元的通道資訊。
在一範例實施例中,所述硬決策電壓包括第一硬決策電壓,所述軟決策電壓包括第一軟決策電壓與第二軟決策電壓,第一軟決策電壓小於第一硬決策電壓,並且第二軟決策電壓大於第一硬決策電壓。
在一範例實施例中,所述解碼方法更包括:若解碼失敗,根據至少一新的硬決策電壓讀取所述記憶胞,以取得至少一新的硬位元;以及根據所述硬位元與所述新的硬位元,決定所述新的硬位元的通道資訊。
在一範例實施例中,若所述硬位元具有所述錯誤,所述解碼方法更包括:計數迭代次數;判斷迭代次數是否達到中止次數;若迭代次數達到中止次數,判定解碼失敗;以及若迭代次數沒有達到中止次數,對更新後的所述硬位元執行奇偶檢查程序,以重新取得所述校驗子,並且根據重新取得的所述校驗子判斷更新後的所述硬位元是否具有所述錯誤。
本發明的一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個記憶胞。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。其中記憶體控制電路單元用以根據至少一硬決策電壓讀取所述記憶胞,以取得至少一硬位元。記憶體控制電路單元更用以對所述硬位元執行奇偶檢查程序,以取得多個校驗子,其中每一所述硬位元是對應至所述校驗子的至少其中之一。記憶體控制電路單元更用以根據所述校驗子判斷所述硬位元是否具有至少一錯誤。若所述硬位元具有所述錯誤,記憶體控制電路單元更用以根據所述硬位元的通道資訊與對應於所述硬位元的校驗權重資訊來更新所述硬位元。若所述硬位元不具有所述錯誤,記憶體控制電路單元更用以輸出所述硬位元。
在一範例實施例中,所述硬位元包括第一硬位元。若所述硬位元具有所述錯誤,記憶體控制電路單元根據所述硬位元的通道資訊與對應於所述硬位元的校驗權重資訊來更新所述硬位元
的操作包括:判斷所述校驗權重資訊中對應於第一硬位元的第一校驗權重資訊是否符合權重條件;若第一校驗權重資訊符合權重條件,判斷第一硬位元的通道資訊是否符合通道條件;若第一硬位元的通道資訊符合通道條件,更新第一硬位元;以及若第一硬位元的通道資訊不符合通道條件,不更新第一硬位元。
在一範例實施例中,所述第一硬位元的通道資訊包括至少一第一軟位元,並且記憶體控制電路單元判斷第一硬位元的通道資訊是否符合通道條件的操作包括:判斷所述第一軟位元是否符合第一狀態;若所述第一軟位元符合第一狀態,判定第一硬位元的通道資訊符合通道條件;以及若所述第一軟位元不符合第一狀態,判定第一硬位元的通道資訊不符合通道條件。
在一範例實施例中,若所述硬位元具有所述錯誤,所述記憶體控制電路單元更用以計數迭代次數。記憶體控制電路單元更用以判斷迭代次數是否達到預設次數。若迭代次數沒有達到預設次數,記憶體控制電路單元更用以設定通道條件為第一通道條件。若迭代次數達到預設次數,記憶體控制電路單元更用以設定通道條件為第二通道條件,其中第一通道條件與第二通道條件不相同。
在一範例實施例中,所述記憶體控制電路單元更用以根據至少一軟決策電壓讀取所述記憶胞,以取得所述硬位元的通道資訊。
在一範例實施例中,若解碼失敗,所述記憶體控制電路
單元更用以根據至少一新的硬決策電壓讀取所述記憶胞,以取得至少一新的硬位元。記憶體控制電路單元更用以根據所述硬位元與所述新的硬位元,決定所述新的硬位元的通道資訊。
在一範例實施例中,若所述硬位元具有所述錯誤,所述記憶體控制電路單元更用以計數迭代次數。記憶體控制電路單元更用以判斷迭代次數是否達到中止次數。若迭代次數達到中止次數,記憶體控制電路單元更用以判定解碼失敗。若迭代次數沒有達到中止次數,記憶體控制電路單元更用以對更新後的所述硬位元執行奇偶檢查程序,以重新取得所述校驗子,並且根據重新取得的所述校驗子判斷更新後的所述硬位元是否具有所述錯誤。
本發明的一範例實施例提供一種記憶體控制電路單元,其用於可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組包括多個記憶胞,記憶體控制電路單元包括:主機介面、記憶體介面、錯誤檢查與校正電路及記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面、記憶體介面及錯誤檢查與校正電路。其中記憶體管理電路用以發送讀取指令序列,其中讀取指令序列用以指示根據至少一硬決策電壓讀取所述記憶胞,以取得至少一硬位元。錯誤檢查與校正電路用以對所述硬位元執行奇偶檢查程序,以取得多個校驗子,其中每一所述硬位元是對應至所述校驗子的至少其中之一。錯誤檢查與校正電路更用以根據所述校驗子判斷所述硬位元是否具有至少一錯誤。若
所述硬位元具有所述錯誤,錯誤檢查與校正電路更用以根據所述硬位元的一通道資訊與對應於所述硬位元的一校驗權重資訊來更新所述硬位元。若所述硬位元不具有所述錯誤,記憶體管理電路更用以輸出所述硬位元。
在一範例實施例中,所述硬位元包括第一硬位元。若所述硬位元具有所述錯誤,錯誤檢查與校正電路根據所述硬位元的通道資訊與對應於所述硬位元的校驗權重資訊來更新所述硬位元的操作包括:判斷所述校驗權重資訊中對應於第一硬位元的第一校驗權重資訊是否符合權重條件;若第一校驗權重資訊符合權重條件,判斷第一硬位元的通道資訊是否符合通道條件;若第一硬位元的通道資訊符合通道條件,更新第一硬位元;以及若第一硬位元的通道資訊不符合通道條件,不更新第一硬位元。
在一範例實施例中,所述第一硬位元的通道資訊包括至少一第一軟位元,並且錯誤檢查與校正電路判斷第一硬位元的通道資訊是否符合通道條件的操作包括:判斷所述第一軟位元是否符合第一狀態;若所述第一軟位元符合第一狀態,判定第一硬位元的通道資訊符合通道條件;以及若所述第一軟位元不符合第一狀態,判定第一硬位元的通道資訊不符合通道條件。
在一範例實施例中,若所述硬位元具有所述錯誤,所述錯誤檢查與校正電路更用以計數迭代次數。錯誤檢查與校正電路更用以判斷迭代次數是否達到預設次數。若迭代次數沒有達到預設次數,錯誤檢查與校正電路更用以設定通道條件為第一通道條
件。若迭代次數達到預設次數,錯誤檢查與校正電路更用以設定通道條件為第二通道條件,其中第一通道條件與第二通道條件不相同。
在一範例實施例中,所述讀取指令序列更用以指示根據至少一軟決策電壓讀取所述記憶胞,以取得所述硬位元的通道資訊。
在一範例實施例中,若解碼失敗,所述記憶體管理電路更用以發送新的讀取指令序列,其中新的讀取指令序列用以指示根據至少一新的硬決策電壓讀取所述記憶胞,以取得至少一新的硬位元。記憶體管理電路更用以根據所述硬位元與所述新的硬位元,決定所述新的硬位元的通道資訊。
在一範例實施例中,若所述硬位元具有所述錯誤,所述錯誤檢查與校正電路更用以計數迭代次數。錯誤檢查與校正電路更用以判斷迭代次數是否達到中止次數。若迭代次數達到中止次數,錯誤檢查與校正電路更用以判定解碼失敗。若迭代次數沒有達到中止次數,錯誤檢查與校正電路更用以對更新後的所述硬位元執行奇偶檢查程序,以重新取得所述校驗子,並且根據重新取得的所述校驗子判斷更新後的所述硬位元是否具有所述錯誤。
基於上述,當從可複寫式非揮發性記憶體模組中讀取的位元存在錯誤時,本發明的一範例實施例可以根據所讀取的各個位元的通道資訊與對應於各個位元的校驗權重資訊,來決定要更新哪些位元。藉此,相對於以往僅僅根據每一次的迭代運算的結
果來更新碼字,本發明的一範例實施例可以有效提升解碼效率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
1000‧‧‧主機系統
1100‧‧‧電腦
11‧‧‧微處理器
12‧‧‧隨機存取記憶體
13‧‧‧輸入/輸出裝置
14‧‧‧系統匯流排
15‧‧‧資料傳輸介面
16‧‧‧滑鼠
17‧‧‧鍵盤
18‧‧‧顯示器
19‧‧‧印表機
20‧‧‧隨身碟
21‧‧‧記憶卡
22‧‧‧固態硬碟
23‧‧‧數位相機
24‧‧‧SD卡
25‧‧‧MMC卡
26‧‧‧記憶棒
27‧‧‧CF卡
28‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接介面單元
104‧‧‧記憶體控制電路單元
106‧‧‧可複寫式非揮發性記憶體模組
304(0)~304(R)‧‧‧實體抹除單元
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
252‧‧‧緩衝記憶體
254‧‧‧電源管理電路
256‧‧‧錯誤檢查與校正電路
600‧‧‧奇偶檢查矩陣
702、1002、1102、1104、1202、1204、1302、1304、1306、1402、1404、1602‧‧‧硬決策電壓
704、706、1004、1006、1106、1108、1110、1112、1206、1208、1210、1212、1308、1310、1312、1314、1316、1318、1406、1408、1410、1412、1604、1606、1608、1610、1612、1614‧‧‧軟決策電壓
710、720、910、920、930、940、2210、2220、2230、2240、2250、2260、2270、2280‧‧‧分佈
730、950、960、970‧‧‧重疊區域
740、1010、1120、1130、1220、1230、1320、1330、1340、1420、1430、1620‧‧‧不穩定區
750、760、1020、1030、1140、1150、1160、1240、1250、1260、1350、1360、1370、1380、1440、1450、1460、1630、1640、1650、1660、1670、1680‧‧‧穩定區
1510‧‧‧碼字
1520‧‧‧校驗向量
S1702、S1704、S1706、S1708、S1710‧‧‧本發明一範例實施例中解碼方法各步驟
S1802、S1804、S1806、S1808、S1810、S1812、S1814、S1816、
S1818、S1820、S1822‧‧‧本發明另一範例實施例中解碼方法各步驟
圖1是根據本發明之一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
圖6是根據一範例實施例所繪示的奇耦檢查矩陣的示意圖。
圖7是根據一範例實施例所繪示的根據一個硬決策電壓來讀取可複寫式非揮發性記憶體模組的範例示意圖。
圖8是根據一範例實施例所繪示的硬位元與軟位元對應在SLC型快閃記憶體模組的臨界電壓分佈上的範例示意圖。
圖9是根據一範例實施例所繪示的MLC型快閃記憶體模組的臨界電壓分佈的範例示意圖。
圖10與圖11是根據一範例實施例所繪示的硬位元與軟位元對應在MLC型快閃記憶體模組的臨界電壓分佈上的範例示意圖。
圖12至圖14是根據一範例實施例所繪示的硬位元與軟位元對應在TLC型快閃記憶體模組的臨界電壓分佈上的範例示意圖。
圖15是根據一範例實施例所繪示的矩陣相乘的示意圖。
圖16是根據一範例實施例所繪示的硬位元與軟位元對應在SLC型快閃記憶體模組的臨界電壓分佈上的範例示意圖。
圖17是根據一範例實施例所繪示的解碼方法的流程圖。
圖18是根據另一範例實施例所繪示的解碼方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
請參照圖1,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置13。電腦1100包括微處理器11、隨機存取記憶體(random access memory,RAM)12、系統匯流排14與資料傳輸介面15。輸入/輸出裝置13包括如圖2的滑鼠16、鍵盤17、
顯示器18與印表機19。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置13,輸入/輸出裝置13可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面15與主機系統1000的其他元件耦接。藉由微處理器11、隨機存取記憶體12與輸入/輸出裝置13的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2所示的隨身碟20、記憶卡21或固態硬碟(Solid State Drive,SSD)22等的可複寫式非揮發性記憶體儲存裝置。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)23時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡24、MMC卡25、記憶棒(memory stick)26、CF卡27或嵌入式儲存裝置28(如圖3所示)。嵌入式儲存裝置28包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置100包括連接介面單元102、記憶體控制電路單元104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接介面單元102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card,eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。連接介面單元102可與記憶體控制電路單元104封裝在一個晶片中,或者連接介面單元102是佈設於一包含記憶體控制電路單元104之晶片外。
記憶體控制電路單元104用以執行以硬體型式或韌體型
式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制電路單元104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106具有實體抹除單元304(0)~304(R)。例如,實體抹除單元304(0)~304(R)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,並且屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。例如,每一實體抹除單元是由128個實體程式化單元所組成。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更具體來說,每一個實體抹除單元包括多條字元線與多條位元線,每一條字元線與每一位元線交叉處配置有一個記憶胞。每一個記憶胞可儲存一或多個位元。在同一個實體抹除單元中,所有的記憶胞會一起被抹除。在此範例實施例中,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊。另一方面,同一條字元線上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元可被分類為下實體程式化單元與上實體程式化
單元。一般來說,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度。在此範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面或是實體扇(sector)。若實體程式化單元為實體頁面,則每一個實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體扇,用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤更正碼)。在本範例實施例中,每一個資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte,B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,本發明並不限制實體扇的大小以及個數。
在本範例實施例中,可複寫式非揮發性記憶體模組106為單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組,即一個記憶胞中可儲存1個位元。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制電路單元104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路202的操作時,等同於說明記憶體控制電路單元104的操作,以下並不再贅述。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元104被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202
的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資
料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制電路單元104還包括緩衝記憶體252、電源管理電路254與錯誤檢查與校正電路256。
緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤更正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤更正碼,並且錯誤檢查與校正電路256會
依據此錯誤更正碼對所讀取的資料執行錯誤檢查與校正程序。
在此範例實施例中,錯誤檢查與校正電路256所使用的錯誤更正碼是低密度奇偶檢查(Low-density parity-check,LDPC)碼。換言之,錯誤檢查與校正電路256會根據一個低密度奇偶檢查演算法來編碼與解碼。錯誤檢查與校正電路256會設定一個奇偶檢查矩陣(parity check matrix),其維度是m-乘-n(m-by-n)。m與n為正整數。正整數n代表一個碼字(codeword)包含了多少個位元,而正整數m代表一個碼字包含了多少個奇偶檢查位元,即正整數n減去正整數m的差(n-m)代表一個碼字中有多少個資訊位元(或稱訊息位元)。
圖6是根據一範例實施例所繪示的奇耦檢查矩陣的示意圖。
請參照圖6,奇偶檢查矩陣600的維度是3-乘-8。一般來說正整數m與n會大於3與8,圖6只是用來舉例說明,本發明並不限制正整數m與n為多少。奇偶檢查矩陣600的每一列(row)亦代表了一限制(constraint)。以第一列為例,若某一個碼字是有效碼字(valid codeword),則將此碼字中第1、2、5、6、與第8個位元做模2(modulo-2)的加法之後,會得到位元”0”。在此領域有通常知識者應能理解如何用奇偶檢查矩陣600來編碼,在此便不再贅述。
當記憶體控制電路單元104(或記憶體管理電路202)要將多個位元寫入至可複寫式非揮發性記憶體模組106時,錯誤檢查
與校正電路256會對每(n-m)個欲被寫入的位元都產生對應的m個奇偶檢查位元。接下來,記憶體控制電路單元104(或記憶體管理電路202)會把這n個位元寫入至可複寫式非揮發性記憶體模組106。可複寫式非揮發性記憶體模組106是藉由改變一個記憶胞的臨界電壓來儲存一或多個位元。
圖7是根據一範例實施例所繪示的根據一個硬決策電壓來讀取可複寫式非揮發性記憶體模組的範例示意圖。
請參照圖7,橫軸代表記憶胞的臨界電壓,而縱軸代表記憶胞個數。例如,圖7是表示某一個字元線上各個記憶胞的臨界電壓。在此假設當某一個記憶胞的臨界電壓是落在分佈710時,此記憶胞所儲存的是位元”1”;相反地,若某一個記憶胞的臨界電壓是落在分佈720時,此記憶胞所儲存的是位元”0”。值得一提的是,本範例實施例是以SLC型快閃記憶體模組為例,因此臨界電壓的分佈有兩種可能。然而,在其他範例實施例中,臨界電壓的分佈可能四種、八種或其他任意個可能,而硬決策(hard decision)電壓702可以在任意兩個分佈之間。此外,本發明也不限制每一個分佈所代表的位元。
在本範例實施例中,當要從可複寫式非揮發性記憶體模組106讀取資料時,記憶體控制電路單元104(或記憶體管理電路202)會發送一讀取指令序列至可複寫式非揮發性記憶體模組106。此讀取指令序列包括一或多個指令或程式碼,並且用以指示根據硬決策電壓702來讀取多個記憶胞所組成的實體程式化單
元,以取得多個位元。若某一個記憶胞的臨界電壓小於硬決策電壓702,則此記憶胞會導通,並且記憶體控制電路單元104(或記憶體管理電路202)會讀到位元”1”。相反地,若某一個記憶胞的臨界電壓大於硬決策電壓702,則此記憶胞不會導通,並且記憶體控制電路單元104(或記憶體管理電路202)會讀到位元”0”。值得注意的是,分佈710與分佈720會包含一個重疊區域730。重疊區域730表示有一些記憶胞中所儲存的應該是位元”1”(屬於分佈710),但其臨界電壓大於硬決策電壓702;或者,有一些記憶胞中所儲存的應該是位元”0”(屬於分佈720),但其臨界電壓小於硬決策電壓702。換言之,所讀取的位元中,有部份的位元會有錯誤。為說明方便,以下將根據硬決策電壓而讀取出的位元統稱為硬位元(hard bits)。
在本範例實施例中,每一個硬位元都有一個相對應的通道資訊(channel information),其用以指示讀取出此硬位元的記憶胞的臨界電壓是落於穩定區或不穩定區。具體而言,若一個硬位元的通道資訊指出對應的記憶胞的臨界電壓落於穩定區,表示此硬位元有較大的機率是對的。反之,若一個硬位元的通道資訊指出對應的記憶胞的臨界電壓落於不穩定區,則表示此硬位元有較大的機率是錯的。例如,在圖7的範例實施例中,假設以軟決策(soft decision)電壓704與706來切割分佈710與分佈720,則可將分佈710與分佈720劃分為不穩定區740、穩定區750及穩定區760。不穩定區740是軟決策電壓704與706之間的區域,穩定區
750是軟決策電壓704左方的區域,並且穩定區760是軟決策電壓706右方的區域。不穩定區740包含至少部份的重疊區域730。一般來說,若一個記憶胞的臨界電壓落在不穩定區740中,則從此記憶胞中讀取出的硬位元有較大的機率是錯的。然而,若一個記憶胞的臨界電壓落在穩定區750或760中,則從此記憶胞中讀取出的硬位元有較大的機率是對的。在此範例實施例中,軟決策電壓704與706是根據硬決策電壓702來決定的。其中,軟決策電壓704是小於硬決策電壓702,並且軟決策電壓706是大於硬決策電壓702。在一範例實施例中,一個硬決策電壓可以對應至多個軟決策電壓的組合,且每一個軟決策電壓的組合可以是記載於一查找表中以供查詢與使用。例如,在一個軟決策電壓的組合中的軟決策電壓704與706會大於另一個軟決策電壓的組合中的軟決策電壓704與706。在另一範例實施例中,每一次使用的軟決策電壓則可以是根據硬決策電壓702而在一預設電壓範圍內隨機決定的。
在本範例實施例中,一個硬位元的通道資訊包括一或多個軟位元。記憶體控制電路單元104(或記憶體管理電路202)可以根據軟決策電壓來讀取記憶胞,以獲得軟位元。在本範例實施例中,用來讀取軟位元的指令是包含於上述用來讀取硬位元的讀取指令序列中。因此,每從一個記憶胞中讀取一個硬位元,就會伴隨取得一個相對應的軟位元。或者,在另一範例實施例中,用來讀取軟位元的指令則是實作於另外專用來讀取軟位元的讀取指令序列中,並且此讀取指令序列可以在任意時間點被發送。例如,
在判定一或多個硬位元發生錯誤時,才發送此讀取指令序列至可複寫式非揮發性記憶體模組106,從而獲得對應的軟位元,且不以此為限。
圖8是根據一範例實施例所繪示的硬位元與軟位元對應在SLC型快閃記憶體模組的臨界電壓分佈上的範例示意圖。
請參照圖8,以SLC型快閃記憶體模組為例,在下達一讀取指令序列至可複寫式非揮發性記憶體模組106之後,對應於每一個被讀取的記憶胞,可複寫式非揮發性記憶體模組106會回傳一個硬位元與相對應的軟位元。特別是,本發明並不限制硬位元與軟位元的傳輸順序與傳輸時間。例如,在一範例實施例中,可複寫式非揮發性記憶體模組106可以每傳送一個硬位元就伴隨傳送相對應的一個軟位元。或者,在另一範例實施例中,可複寫式非揮發性記憶體模組106也可以先傳送至少部份的硬位元,在傳送相對應的至少部份的軟位元等,本發明不加以限制。
如圖8所示,在此範例實施例中,若硬位元是“1”並且對應的軟位元是“0”,表示對應的記憶胞有可能是儲存位元“1”,並且此記憶胞的臨界電壓落於穩定區750。當接收到的硬位元是“1”並且對應的軟位元是“1”時,表示對應的記憶胞有可能是儲存位元“1”,並且此記憶胞的臨界電壓落於不穩定區740。當接收到的硬位元是“0”並且對應的軟位元是“1”時,表示對應的記憶胞有可能是儲存位元“0”,並且此記憶胞的臨界電壓落於不穩定區740。當接收到的硬位元是“0”並且對應的軟位元是“0”時,表示對應的記憶胞
有可能是儲存位元“0”,並且此記憶胞的臨界電壓落於穩定區760。此外,在本範例實施例中,軟位元是藉由將根據軟決策電壓704與軟決策電壓706所各別讀取出的位元值作互斥或(XOR)操作而獲得。然而,在另一範例實施例中,軟位元也可以是透過其他的邏輯運算而獲得,本發明不加以限制。
圖9是根據一範例實施例所繪示的MLC型快閃記憶體模組的臨界電壓分佈的範例示意圖。
請參照圖9,以MLC型快閃記憶體模組為例,隨著不同的臨界電壓,每一記憶胞具有4種儲存狀態,並且此些儲存狀態分別地代表"11"、"10"、"00"與"01"等位元。例如,當某一個記憶胞的臨界電壓是落在分佈910時,此記憶胞所儲存的是位元”11”。當某一個記憶胞的臨界電壓是落在分佈920時,此記憶胞所儲存的是位元”10”。當某一個記憶胞的臨界電壓是落在分佈930時,此記憶胞所儲存的是位元”00”。當某一個記憶胞的臨界電壓是落在分佈940時,此記憶胞所儲存的是位元”01”。
在此範例實施例中,每一記憶胞可儲存2個位元。亦即,每一個儲存狀態包括最低有效位元(Least Significant Bit,LSB)以及最高有效位元(Most Significant Bit,MSB),並且LSB與MSB是根據施予至記憶胞的不同的硬決策電壓而取得。在本範例實施例中,儲存狀態(即,"11"、"10"、"00"與"01")中從左側算起之第1個位元為LSB,而從左側算起之第2個位元為MSB。在另一範例實施例中,臨界電壓與儲存狀態的對應亦可是隨著臨界電壓越大
而以"11"、"10"、"01"與"00"排列,或是其他排列。此外,在另一範例實施例中,亦可定義從左側算起之第1個位元為MSB,而從左側算起之第2個位元為LSB。值得注意的是,在重疊區域950~970中,部分記憶胞的臨界電壓發生重疊,從而有較大的機率導致讀取出的LSB或MSB發生錯誤。
圖10與圖11是根據一範例實施例所繪示的硬位元與軟位元對應在MLC型快閃記憶體模組的臨界電壓分佈上的範例示意圖。
請參照圖10,以MLC型快閃記憶體模組為例,當欲讀取某一個記憶胞的LSB時,根據所施加的硬決策電壓1002、軟決策電壓1004及軟決策電壓1006,分佈910~940會被劃分為不穩定區1010、穩定區1020及穩定區1030,並且一個硬位元與相對應的軟位元會被取得。其中,此硬位元即是此記憶胞的LSB,並且此軟位元指示對應於此硬位元,此記憶胞的臨界電壓是落於穩定區或者不穩定區。如圖10所示,當硬位元是“1”並且對應的軟位元是“0”時,表示對應的記憶胞的LSB有可能是“1”,並且此記憶胞的臨界電壓落於穩定區1020。
請參照圖11,當欲讀取某一個記憶胞的MSB時,根據所施加的硬決策電壓1102、硬決策電壓1104、軟決策電壓1106、軟決策電壓1108、軟決策電壓1110及軟決策電壓1112,分佈910、920、930及940會被劃分為不穩定區1120、不穩定區1130、穩定區1040、穩定區1150及穩定區1160,並且一個硬位元與相對應
的軟位元會被取得。其中,此硬位元即是此記憶胞的MSB,並且此軟位元指示對應於此硬位元,此記憶胞的臨界電壓落於穩定區或者不穩定區。如圖11所示,當硬位元是“0”並且對應的軟位元是“1”時,表示對應的記憶胞的LSB有可能是“0”,並且此記憶胞的臨界電壓落於不穩定區1120或不穩定區1130。
圖12至圖14是根據一範例實施例所繪示的硬位元與軟位元對應在TLC型快閃記憶體模組的臨界電壓分佈上的範例示意圖。
請參照圖12,以TLC型快閃記憶體模組為例,依照不同的臨界電壓,記憶胞具有8種儲存狀態(即,"111"、"110"、"100"、"101"、"001"、"000"、"010"與"011"),並且這些儲存狀態分別對應至分佈2210、2220、2230、2240、2250、2260、2270及2280。每一個儲存狀態包括3個位元,即從左側算起之第1個位元的最低有效位元LSB、從左側算起之第2個位元的中間有效位元(Center Significant Bit,CSB)以及從左側算起之第3個位元的最高有效位元MSB。值得說明的是,此8種儲存狀態之排列順序,可依製造商之設計而訂,非以本範例之排列方式為限。
當欲讀取某一個記憶胞的LSB時,根據所施加的硬決策電壓1202、硬決策電壓1204、軟決策電壓1206、軟決策電壓1208、軟決策電壓1210及軟決策電壓1212,分佈2210、2220、2230、2240、2250、2260、2270及2280會被劃分為不穩定區1220、不穩定區1230、穩定區1240、穩定區1250及穩定區1260,並且一
個硬位元與相對應的軟位元會被取得。其中,此硬位元即是記憶胞的LSB,並且此軟位元指示對應於此硬位元,此記憶胞的臨界電壓落於穩定區或者不穩定區。如圖12所示,當硬位元是“1”並且對應的軟位元是“1”時,表示對應的記憶胞的LSB有可能是“1”,並且此記憶胞的臨界電壓落於不穩定區1220或不穩定區1230。
請參照圖13,當欲讀取某一個記憶胞的CSB時,根據所施加的硬決策電壓1302、硬決策電壓1304、硬決策電壓1306、軟決策電壓1308、軟決策電壓1310、軟決策電壓1312、軟決策電壓1314、軟決策電壓1316及軟決策電壓1318,分佈2210、2220、2230、2240、2250、2260、2270及2280會被劃分為不穩定區1320、不穩定區1330、不穩定區1340、穩定區1350、穩定區1360、穩定區1370及穩定區1380,並且一個硬位元與相對應的軟位元會被取得。其中,此硬位元即是記憶胞的CSB,並且此軟位元指示對應於此硬位元,此記憶胞的臨界電壓是落於穩定區或者不穩定區。如圖13所示,當硬位元是“0”並且對應的軟位元是“1”時,表示對應的記憶胞的CSB有可能是“0”,並且此記憶胞的臨界電壓落於不穩定區1320、不穩定區1330或不穩定區1340。
請參照圖14,當欲讀取某一個記憶胞的MSB時,根據所施加的硬決策電壓1402、硬決策電壓1404、軟決策電壓1406、軟決策電壓1408、軟決策電壓1410及軟決策電壓1412,分佈2210、2220、2230、2240、2250、2260、2270及2280會被劃分為不穩定
區1420、不穩定區1430、穩定區1440、穩定區1450及穩定區1460,並且一個硬位元與相對應的軟位元會被取得。其中,此硬位元即為此記憶胞的MSB,並且此軟位元指示對應於此硬位元,此記憶胞的臨界電壓是落於穩定區或者不穩定區。如圖14所示,當硬位元是“1”並且對應的軟位元是“0”時,表示對應的記憶胞的MSB有可能是“1”,並且此記憶胞的臨界電壓落於穩定區1440。值得一提的是,在圖7至圖14的任一個範例實施例中,軟決策電壓的值與數量以及軟位元的數量,都可以適應性地被增加或減少,本發明不加以限制。換言之,根據軟位元,記憶體控制電路單元104(或記憶體管理電路202)可以概略地得知對應的記憶胞的臨界電壓是落於穩定區或不穩定區。而進一步搭配硬位元,記憶體控制電路單元104(或記憶體管理電路202)即可更明確地得知對應的記憶胞的臨界電壓是落於哪一個(或多個)穩定區或哪一個(或多個)不穩定區。例如,在圖14的範例實施例中,當軟位元是0時,表示對應的記憶胞的臨界電壓可能落於穩定區1440、穩定區1450及穩定區1460的其中之一;而若進一步基於對應的硬位元是1,則表示對應的記憶胞的臨界電壓應是落於穩定區1440,而不是穩定區1450或穩定區1460。亦即,記憶體控制電路單元104(或記憶體管理電路202)可以僅依據軟位元或者同時依據硬位元與對應的軟位元來判定記憶胞的臨界電壓是落於穩定區或不穩定區,本發明不加以限制。
在記憶體控制電路單元104(或記憶體管理電路202)根據
硬決策電壓(例如,圖7的硬決策電壓702)從可複寫式非揮發性記憶體模組106讀取上述硬位元以後,這些硬位元會被分成長度為n的一或多個碼字。錯誤檢查與校正電路256會解碼每一個碼字。具體來說,錯誤檢查與校正電路256會先對一個碼字中的硬位元執行低密度奇偶檢查演算法的奇偶檢查以取得多個校驗子(syndrome)。例如,錯誤檢查與校正電路256會將上述的奇偶檢查矩陣與一個碼字作模2的矩陣相乘,此矩陣相乘可以透過以下方程式(1)表示。
[H][V]=[S]...(1)
H為上述的奇偶檢查矩陣。V為一個碼字,其維度是n-乘-1。S為一校驗向量,其中包括了上述的多個校驗子,並且校驗向量的維度是m-乘-1。錯誤檢查與校正電路256會根據這些校驗子判斷碼字V中的硬位元是否具有錯誤。具體來說,若校驗向量S中的每一個校驗子都是位元”0”,表示碼字V中可能沒有錯誤。若校驗向量S中有一或多個校驗子是位元”1”,則表示碼字V中至少有一個錯誤。
圖15是根據一範例實施例所繪示的矩陣相乘的示意圖。
請參照圖15,奇偶檢查矩陣600與碼字1510相乘的結果是校驗向量1520。碼字1510中的每一個硬位元是對應到校驗向量1520中的至少一個校驗子。舉例來說,碼字1510中的第一個硬位元V0(對應至奇偶檢查矩陣600中的第一行)是對應到校驗子S0;硬位元V1(對應至奇偶檢查矩陣600中的第二行)是對應到校驗子
S0與校驗子S1。若硬位元V0發生了錯誤,則校驗子S0可能會是位元”1”。若硬位元V1發生了錯誤,則校驗子S0與S1可能會是位元”1”。換言之,若奇偶檢查矩陣600中第i列(column)第j行的元素(element)為”1”,則碼字1510中第j個硬位元至少會對應到校驗向量1520中第i個校驗子,其中i與j為正整數。
若碼字1510中的硬位元沒有錯誤,則錯誤檢查與校正電路256會輸出碼字1510中的硬位元。若碼字1510中的硬位元有錯誤,則錯誤檢查與校正電路256會執行一次迭代運算,以根據碼字1510中每一個硬位元的通道資訊與對應於每一個硬位元的校驗權重資訊來更新碼字1510。具體而言,錯誤檢查與校正電路256會根據每一個硬位元所對應的校驗子來取得對應於每一個硬位元的校驗權重資訊。舉例來說,錯誤檢查與校正電路256可以將對應至同一個硬位元的校驗子相加以取得對應於此硬位元的校驗權重資訊。如圖15所示,對應於硬位元V0的校驗權重資訊等於校驗子S0;對應於硬位元V1的校驗權重資訊等於校驗子S0與校驗子S1的相加,以此類推。值得注意的是,在此對校驗子S0~S2所做的加法是一般的加法,而不是模2的加法。然而,在另一範例實施例中,錯誤檢查與校正電路256也可以將每一個校驗子乘上一個權重,並且累加校驗子與權重相乘的結果以取得校驗權重資訊。例如,對應於硬位元V1的校驗權重資訊會等於W0S0+W1S1,其中權重W0與W1為實數。錯誤檢查與校正電路256可以根據校驗子對應的硬位元的個數來決定權重。例如,校驗子S0是對應到
5個硬位元,而校驗子S1是對應到3個硬位元。因此,錯誤檢查與校正電路256可以將權重W0設定的比權重W1還要小(或者大)。本發明並不限制如何設定每一個校驗子的權重。在另一範例實施例中,錯誤檢查與校正電路256也可以把校驗子S0~S2的至少其中之一當作一個函數的輸入,並且把此函數的輸出當作校驗權重資訊。此函數可以是線性函數、多項式函數、指數函數或是其他非線性函數,本發明並不在此限。
在取得對應於各個硬位元的校驗權重資訊之後,錯誤檢查與校正電路256會判斷碼字1510中的每一個硬位元所對應的校驗權重資訊是否符合一權重條件。例如,錯誤檢查與校正電路256會比較每一個硬位元所對應的校驗權重資訊,並且將數值最大的N個校驗權重資訊視為符合權重條件的校驗權重資訊。其中N是正整數。例如,假設N=4,並且錯誤檢查與校正電路256獲得對應於硬位元V0~V7的校驗權重資訊分別是“1”、“2”、“1”、“1”、“2”、“2”、“1”及“2”,則由於硬位元V1、V4、V5及V7所對應的校驗權重資訊是最大的四個,因此錯誤檢查與校正電路256會將硬位元V1、V4、V5及V7所對應的校驗權重資訊視為符合權重條件的校驗權重資訊。然而,若N小於4,則錯誤檢查與校正電路256可以隨機或依照其他的規則從硬位元V1、V4、V5及V7中選擇一個~三個作為符合權重條件的校驗權重資訊所對應的硬位元。接著,假設硬位元V1所對應的校驗權重資訊(亦稱為第一校驗權重資訊)符合此權重條件,則錯誤檢查與校正電路256會進一步判斷硬位元
V1的通道資訊是否符合一通道條件。例如,錯誤檢查與校正電路256會判斷對應於硬位元V1的一或多個軟位元(亦稱為第一軟位元)是否符合一第一狀態。若第一軟位元符合第一狀態,則錯誤檢查與校正電路256會判定硬位元V1的通道資訊符合通道條件。反之,若第一軟位元不符合第一狀態,則錯誤檢查與校正電路256會判定硬位元V1的通道資訊不符合通道條件。
例如,假設第一軟位元只有一個位元,則錯誤檢查與校正電路256可以判斷第一軟位元是否是一第一值。接續於前述圖7至圖14的範例實施例,此第一值例如是“1”,而用以表示硬位元V1所對應的記憶胞的臨界電壓是落於不穩定區。若第一軟位元是第一值,則錯誤檢查與校正電路256會判定第一軟位元符合第一狀態。反之,若第一軟位元不是第一值,則錯誤檢查與校正電路256會判定第一軟位元不符合第一狀態。例如,接續於前述圖7至圖14的範例實施例,若對應於硬位元V1的第一軟位元的值是“0”,則表示硬位元V1所對應的記憶胞的臨界電壓是落於穩定區,並且錯誤檢查與校正電路256會判定第一軟位元不符合第一狀態。此外,若第一軟位元包括多個位元,則此第一狀態可用以限定第一軟位元的各個位元的狀態。例如,當第一軟位元包括3個位元時,則此第一狀態可以是“111”,且不限於此。
若硬位元V1的通道資訊符合通道條件,錯誤檢查與校正電路256會更新硬位元V1。例如,將硬位元V1由“0”更新成“1”,或者將硬位元V1由“1”更新成“0”。反之,若硬位元V1的通道資訊
不符合通道條件,則錯誤檢查與校正電路256不會更新硬位元V1。在一範例實施例中,此更新硬位元的操作亦可稱為位元翻轉(bit flipping)。
此外,在一範例實施例中,若碼字1510中的硬位元有錯誤,錯誤檢查與校正電路256也可以僅根據碼字1510中各個硬位元的通道資訊來決定要更新碼字1510中的哪一個硬位元。例如,錯誤檢查與校正電路256會檢查碼字1510中各個硬位元的通道資訊是否符合上述通道條件,並且僅更新通道資訊符合上述通道條件的硬位元。藉此,可減少運算量,加快每一次迭代運算的速度。
在將碼字1510中需要更新的硬位元都更新之後,錯誤檢查與校正電路256會重新對更新後的碼字1510中的硬位元執行上述奇偶檢查程序,以重新取得上述校驗子,並且根據重新取得的校驗子判斷更新後的碼字1510中的硬位元是否仍具有至少一錯誤。若更新後的碼字1510中的硬位元仍具有錯誤,則錯誤檢查與校正電路256會再次執行上述根據碼字1510中每一個硬位元的通道資訊與對應於每一個硬位元的校驗權重資訊來更新此些硬位元的操作。反之,若更新後的碼字1510中的硬位元不具有錯誤,則錯誤檢查與校正電路256會輸出更新後的碼字1510中的硬位元。
在一範例實施例中,若錯誤檢查與校正電路256判定碼字1510中存在錯誤,則錯誤檢查與校正電路256會計數一迭代次數,例如,將迭代次數加1,並且判斷計數後的迭代次數是否達到一中止次數。在此,中止次數例如是30次或者更多或更少。若計
數後的迭代次數達到中止次數,則錯誤檢查與校正電路256會判定解碼失敗,並且停止解碼。若計數後的迭代次數沒有達到中止次數,則錯誤檢查與校正電路256會執行上述根據碼字1510中每一個硬位元的通道資訊與對應於每一個硬位元的校驗權重資訊來更新此些硬位元的操作。
在一範例實施例中,錯誤檢查與校正電路256還會判斷計數後的迭代次數是否達到一預設次數。其中,此預設次數少於上述中止次數,並且例如是20次或者更多或更少。若計數後的迭代次數沒有達到預設次數,錯誤檢查與校正電路256會將上述通道條件設定為一第一通道條件。若計數後的迭代次數達到預設次數,錯誤檢查與校正電路256會將上述通道條件設定為一第二通道條件。其中,第一通道條件與第二通道條件不相同。舉例來說,在圖8的範例實施例中,假設在前20次的迭代運算中,某一個硬位元所對應的軟位元是“0”,因此此硬位元沒有被更新過。在經過20次的迭代運算之後,若錯誤檢查與校正電路256仍無法獲得正確的碼字,則錯誤檢查與校正電路256會放寬通道條件,而可以更新此硬位元,從而提升獲得正確碼字的機率。
圖16是根據一範例實施例所繪示的硬位元與軟位元對應在SLC型快閃記憶體模組的臨界電壓分佈上的範例示意圖。
請參照圖16,在此範例實施例中,每一個硬位元的通道資訊包括多個軟位元。這些軟位元具有多個狀態。根據這些軟位元的不同狀態,此硬位元所對應的記憶胞的臨界電壓可以被更詳
細的歸類至多個層級的其中之一。如圖16所示,當欲讀取某一個記憶胞時,根據所施予的硬決策電壓1602、軟決策電壓1604、軟決策電壓1606、軟決策電壓1608、軟決策電壓1610、軟決策電壓1612及軟決策電壓1614,分佈710與720會被劃分為不穩定區1620、穩定區1630、穩定區1640、穩定區1650、穩定區1660、穩定區1670及穩定區1680,並且一個硬位元與相對應的軟位元(1)~軟位元(3)會被取得。其中,軟位元(1)是根據軟決策電壓1604與軟決策電壓1606所各別讀取出的位元值作互斥或操作而獲得;軟位元(2)是根據軟決策電壓1608與軟決策電壓1610所各別讀取出的位元值作互斥或操作而獲得;軟位元(3)是根據軟決策電壓1612與軟決策電壓1614所各別讀取出的位元值作互斥或操作而獲得。例如,若軟位元(1)~軟位元(3)的狀態是“111”,表示此硬位元所對應的記憶胞的臨界電壓落於不穩定區1620;若硬位元是“0”且軟位元(1)~軟位元(3)的狀態是“011”,表示此硬位元所對應的記憶胞的臨界電壓落於穩定區1640,以此類推。換言之,若一個硬位元所對應的軟位元(1)~軟位元(3)的狀態是“000”,則表示此硬位元發生錯誤的機率最小。若一個硬位元所對應的軟位元(1)~軟位元(3)的狀態是“001”或“011”,則表示此硬位元發生錯誤的機率逐漸升高。若一個硬位元所對應的軟位元(1)~軟位元(3)的狀態是“111”,則表示此硬位元發生錯誤的機率最高。然而,在另一範例實施例中,若不對讀取出的軟位元作互斥或等邏輯操作或者增減所執行的邏輯操作,則通道資訊所包括的軟位元的數量可以是更
多或更少。
在此範例實施例中,假設在第1次至第P次的迭代運算中,預設的通道條件是:軟位元(1)~軟位元(3)的狀態是“111”。在第1次至第P次的迭代運算中,即使對應於某一硬位元的校驗權重資訊符合權重條件,只要此硬位元所對應的軟位元(1)~軟位元(3)的狀態不是“111”,則此硬位元就不會被更新。在第P次的迭代運算之後,通道條件變更為:軟位元(1)~軟位元(3)的狀態是“011”。因此,在第P次的迭代運算之後,若某一硬位元的校驗權重資訊符合權重條件,且對應於此硬位元的軟位元(1)~軟位元(3)符合此變更後的通道條件,則此硬位元就可以被更新,從而提升獲得正確的碼字的機率。此外,也可設定在第P+1次至第Q次的迭代運算中,通道條件是:軟位元(1)~軟位元(3)的狀態是“001”,在第Q+1次至第R次的迭代運算中,通道條件是:沒有條件,或者加以變化。其中,P、Q及R是正整數,且R>Q>P。此外,在一範例實施例中,也可將通道條件設定為:始終是軟位元(1)~軟位元(3)的狀態是“111”或者始終是沒有條件等等,而不會隨迭代次數增加而變更。
值得一提的是,硬位元的通道資訊不一定是藉由軟決策電壓讀取記憶胞而獲得。在一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)也可以根據不同的硬決策電壓來讀取某一個記憶胞的讀取結果,得知此記憶胞的臨界電壓是落於穩定區或不穩定區,進而決定從此記憶胞中讀取出的硬位元的通道
資訊。
具體而言,以圖15為例,在一範例實施例中,假設記憶體控制電路單元104(或記憶體管理電路202)起初不知道組成上述實體程式化單元的各個記憶胞的臨界電壓是落於穩定區或不穩定區,因此,在取得碼字1510中的硬位元之後,記憶體控制電路單元104(或記憶體管理電路202)可以將碼字1510中各個硬位元的通道資訊都視為符合通道條件,並且根據對應於各個硬位元的校驗權重資訊來更新碼字1510中需要更新的硬位元。之後,若解碼失敗,記憶體控制電路單元104(或記憶體管理電路202)會查詢一查找表或者透過稍微增加或減少此硬決策電壓(即,舊的硬決策電壓)以取得至少一新的硬決策電壓,並發送一新的讀取指令序列至可複寫式非揮發性記憶體模組106。此新的讀取指令序列包括一或多個指令或程式碼,並且用以指示根據新的硬決策電壓來讀取上述記憶胞,以取得多個新的硬位元。然後,記憶體控制電路單元104(或記憶體管理電路202)會比較根據舊的硬決策電壓從某一個記憶胞讀取出的硬位元與根據新的硬決策電壓從此記憶胞讀取出的新的硬位元是否相同。若相同,表示此記憶胞的臨界電壓是落於穩定區;若不相同,表示此記憶胞的臨界電壓是落於不穩定區。記憶體控制電路單元104(或記憶體管理電路202)可以根據此記憶胞的臨界電壓是落於穩定區或不穩定區來決定此新的硬位元的通道資訊。例如,當判定此記憶胞的臨界電壓是落於穩定區時,記憶體控制電路單元104(或記憶體管理電路202)可以設定此新的硬
位元所對應的軟位元是“0”;當判定此記憶胞的臨界電壓是落於不穩定區時,記憶體控制電路單元104(或記憶體管理電路202)可以設定此新的硬位元所對應的軟位元是“1”等,且不限於此。或者,在使用一特定數量的多個硬決策電壓來讀取上述記憶胞之後,記憶體控制電路單元104(或記憶體管理電路202)也可以將讀取出的硬位元的變化次數(包括從“0”變“1”以及從“1”變“0”)超過一特定次數的記憶胞的臨界電壓判定為落於不穩定區,反之則判定為落於穩定區。此外,這種根據硬位元的變化程度來決定硬位元的通道資訊的方式也可以搭配上述軟決策電壓所取得的軟位元來使用,本發明不加以限制。
值得一提的是,在上述各個範例實施例中,穩定區亦可以命名為高信賴度(high reliable)區或具有類似涵義的名稱,並且不穩定區亦可以命名為低信賴度(low reliable)區或具有類似涵義的名稱,或者以分層級的方式來命名。例如,在圖16的範例實施例中,亦可以將區域1620命名為最低穩定度(信賴度)區、將區域1630與區域1640命名為次低穩定度(信賴度)區、將區域1650與區域1660命名為次高穩定度(信賴度)區、並且將區域1670與區域1680命名為最高穩定度(信賴度)區等等,且不限於此。
圖17是根據一範例實施例所繪示的解碼方法的流程圖。
請參照圖17,在步驟S1702中,根據至少一硬決策電壓讀取所述記憶胞,以取得至少一硬位元。
在步驟S1704中,對所述硬位元執行奇偶檢查程序,以
取得多個校驗子,其中每一所述硬位元是對應至所述校驗子的至少其中之一。
在步驟S1706中,根據所述校驗子判斷所述硬位元是否具有至少一錯誤。
若所述硬位元具有所述錯誤,在步驟S1708中,根據所述硬位元的通道資訊與對應於所述硬位元的校驗權重資訊來更新所述硬位元。之後,重複執行步驟S1704。
若所述硬位元不具有所述錯誤,在步驟S1710中,輸出所述硬位元。
圖18是根據另一範例實施例所繪示的解碼方法的流程圖。
請參照圖18,在步驟S1802中,根據至少一硬決策電壓讀取所述記憶胞,以取得至少一硬位元。
在步驟S1804中,對所述硬位元執行奇偶檢查程序,以取得多個校驗子,其中每一所述硬位元是對應至所述校驗子的至少其中之一。
在步驟S1806中,根據所述校驗子判斷所述硬位元是否具有至少一錯誤。
若所述硬位元不具有所述錯誤,在步驟S1808中,輸出所述硬位元。
若所述硬位元具有所述錯誤,在步驟S1810中,計數一迭代次數,並且在步驟S1812中,判斷迭代次數是否達到中止次
數。
若迭代次數已達到中止次數,在步驟S1814中,判定解碼失敗。
若迭代次數沒有達到中止次數,在步驟S1816中,判斷迭代次數是否達到預設次數。在此,預設次數會小於中止次數。
若迭代次數沒有達到預設次數,在步驟S1818中,將通道條件設定為第一通道條件。若當時的通道條件已經是第一通道條件,則步驟S1818亦可略過。
若迭代次數已達到預設次數,在步驟S1820中,將通道條件設定為第二通道條件。
在步驟S1822中,根據所述硬位元的通道資訊與對應於所述硬位元的校驗權重資訊來更新所述硬位元。之後,重複執行步驟S1804。
在一範例實施例中,在步驟S1814中,還會判斷解碼失敗的次數是否達到一特定次數。若尚未達到此特定次數,步驟S1802會被重複執行。例如,記憶體控制電路單元104(或記憶體管理電路202)會下達另一讀取指令序列至可複寫式非揮發性記憶體模組106,以根據與前一次使用的硬決策電壓不相同的另一硬決策電壓來讀取所述記憶胞,並且再次取得至少一硬位元。之後,步驟S1804與步驟S1806等會被依序執行。反之,若解碼失敗的次數已達到此特定次數,則此次的解碼程序會被停止。
然而,圖17與圖18中各步驟已詳細說明如上,在此便
不在贅述。值得注意的是,圖17與圖18中各步驟可以實作為多個程式碼或是電路,本發明並不在此限。此外,圖17與圖18的方法可以搭配以上實施例使用,也可以單獨使用,本發明並不在此限。
綜上所述,本發明一範例實施例的解碼方法、記憶體儲存裝置及記憶體控制電路單元,在進行錯誤更正時是採用位元翻轉,並且搭配與記憶胞的臨界電壓有關的通道資訊來輔助確認要被翻轉的位元,從而可有效提升解碼效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S1702、S1704、S1706、S1708、S1710‧‧‧解碼方法各步驟
Claims (24)
- 一種解碼方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個記憶胞,該解碼方法包括:根據至少一硬決策電壓讀取該些記憶胞,以取得至少一硬位元;對該至少一硬位元執行一奇偶檢查程序,以取得多個校驗子(syndrome),其中每一該至少一硬位元是對應至該些校驗子的至少其中之一;根據該些校驗子判斷該至少一硬位元是否具有至少一錯誤;若該至少一硬位元具有該至少一錯誤,根據該至少一硬位元的一通道資訊與對應於該至少一硬位元的一校驗權重資訊來更新該至少一硬位元;以及若該至少一硬位元不具有該至少一錯誤,輸出該至少一硬位元。
- 如申請專利範圍第1項所述的解碼方法,其中該至少一硬位元包括一第一硬位元,若該至少一硬位元具有該至少一錯誤,根據該至少一硬位元的該通道資訊與對應於該至少一硬位元的該校驗權重資訊來更新該至少一硬位元的步驟包括:判斷所述校驗權重資訊中對應於該第一硬位元的一第一校驗權重資訊是否符合一權重條件;若該第一校驗權重資訊符合該權重條件,判斷該第一硬位元 的該通道資訊是否符合一通道條件;若該第一硬位元的該通道資訊符合該通道條件,更新該第一硬位元;以及若該第一硬位元的該通道資訊不符合該通道條件,不更新該第一硬位元。
- 如申請專利範圍第2項所述的解碼方法,其中該第一硬位元的該通道資訊包括至少一第一軟位元,並且判斷該第一硬位元的該通道資訊是否符合該通道條件的步驟包括:判斷該至少一第一軟位元是否符合一第一狀態;若該至少一第一軟位元符合該第一狀態,判定該第一硬位元的該通道資訊符合該通道條件;以及若該至少一第一軟位元不符合該第一狀態,判定該第一硬位元的該通道資訊不符合該通道條件。
- 如申請專利範圍第2項所述的解碼方法,其中若該至少一硬位元具有該至少一錯誤,該解碼方法更包括:計數一迭代次數;判斷該迭代次數是否達到一預設次數;若該迭代次數沒有達到該預設次數,設定該通道條件為一第一通道條件;以及若該迭代次數達到該預設次數,設定該通道條件為一第二通道條件,其中該第一通道條件與該第二通道條件不相同。
- 如申請專利範圍第1項所述的解碼方法,更包括: 根據至少一軟決策電壓讀取該些記憶胞,以取得該至少一硬位元的該通道資訊。
- 如申請專利範圍第5項所述的解碼方法,其中該至少一硬決策電壓包括一第一硬決策電壓,該至少一軟決策電壓包括一第一軟決策電壓與一第二軟決策電壓,該第一軟決策電壓小於該第一硬決策電壓,並且該第二軟決策電壓大於該第一硬決策電壓。
- 如申請專利範圍第1項所述的解碼方法,更包括:若解碼失敗,根據至少一新的硬決策電壓讀取該些記憶胞,以取得至少一新的硬位元;以及根據該至少一硬位元與該至少一新的硬位元,決定該至少一新的硬位元的該通道資訊。
- 如申請專利範圍第1項所述的解碼方法,其中若該至少一硬位元具有該至少一錯誤,該解碼方法更包括:計數一迭代次數;判斷該迭代次數是否達到一中止次數;若該迭代次數達到該中止次數,判定解碼失敗;以及若該迭代次數沒有達到該中止次數,對更新後的該至少一硬位元執行該奇偶檢查程序,以重新取得該些校驗子,並且根據重新取得的該些校驗子判斷更新後的該至少一硬位元是否具有該至少一錯誤。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,包括多個記憶胞;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以根據至少一硬決策電壓讀取該些記憶胞,以取得至少一硬位元,該記憶體控制電路單元更用以對該至少一硬位元執行一奇偶檢查程序,以取得多個校驗子,其中每一該至少一硬位元是對應至該些校驗子的至少其中之一,該記憶體控制電路單元更用以根據該些校驗子判斷該至少一硬位元是否具有至少一錯誤,若該至少一硬位元具有該至少一錯誤,該記憶體控制電路單元更用以根據該至少一硬位元的一通道資訊與對應於該至少一硬位元的一校驗權重資訊來更新該至少一硬位元,若該至少一硬位元不具有該至少一錯誤,該記憶體控制電路單元更用以輸出該至少一硬位元。
- 如申請專利範圍第9項所述的記憶體儲存裝置,其中該至少一硬位元包括一第一硬位元,若該至少一硬位元具有該至少一錯誤,該記憶體控制電路單元根據該至少一硬位元的該通道資訊與對應於該至少一硬位元的該校驗權重資訊來更新該至少一硬位元的操作包括:判斷所述校驗權重資訊中對應於該第一硬位元的一第一校驗權重資訊是否符合一權重條件; 若該第一校驗權重資訊符合該權重條件,判斷該第一硬位元的該通道資訊是否符合一通道條件;若該第一硬位元的該通道資訊符合該通道條件,更新該第一硬位元;以及若該第一硬位元的該通道資訊不符合該通道條件,不更新該第一硬位元。
- 如申請專利範圍第10項所述的記憶體儲存裝置,其中該第一硬位元的該通道資訊包括至少一第一軟位元,並且該記憶體控制電路單元判斷該第一硬位元的該通道資訊是否符合該通道條件的操作包括:判斷該至少一第一軟位元是否符合一第一狀態;若該至少一第一軟位元符合該第一狀態,判定該第一硬位元的該通道資訊符合該通道條件;以及若該至少一第一軟位元不符合該第一狀態,判定該第一硬位元的該通道資訊不符合該通道條件。
- 如申請專利範圍第10項所述的記憶體儲存裝置,其中若該至少一硬位元具有該至少一錯誤,該記憶體控制電路單元更用以計數一迭代次數,該記憶體控制電路單元更用以判斷該迭代次數是否達到一預設次數,若該迭代次數沒有達到該預設次數,該記憶體控制電路單元更用以設定該通道條件為一第一通道條件, 若該迭代次數達到該預設次數,該記憶體控制電路單元更用以設定該通道條件為一第二通道條件,其中該第一通道條件與該第二通道條件不相同。
- 如申請專利範圍第9項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據至少一軟決策電壓讀取該些記憶胞,以取得該至少一硬位元的該通道資訊。
- 如申請專利範圍第13項所述的記憶體儲存裝置,其中該至少一硬決策電壓包括一第一硬決策電壓,該些軟決策電壓包括一第一軟決策電壓與一第二軟決策電壓,該第一軟決策電壓小於該第一硬決策電壓,並且該第二軟決策電壓大於該第一硬決策電壓。
- 如申請專利範圍第9項所述的記憶體儲存裝置,其中若解碼失敗,該記憶體控制電路單元更用以根據至少一新的硬決策電壓讀取該些記憶胞,以取得至少一新的硬位元,該記憶體控制電路單元更用以根據該至少一硬位元與該至少一新的硬位元,決定該至少一新的硬位元的該通道資訊。
- 如申請專利範圍第9項所述的記憶體儲存裝置,其中若該至少一硬位元具有該至少一錯誤,該記憶體控制電路單元更用以計數一迭代次數,該記憶體控制電路單元更用以判斷該迭代次數是否達到一中止次數,若該迭代次數達到該中止次數,該記憶體控制電路單元更用 以判定解碼失敗,若該迭代次數沒有達到該中止次數,該記憶體控制電路單元更用以對更新後的該至少一硬位元執行該奇偶檢查程序,以重新取得該些校驗子,並且根據重新取得的該些校驗子判斷更新後的該至少一硬位元是否具有該至少一錯誤。
- 一種記憶體控制電路單元,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個記憶胞,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一錯誤檢查與校正電路;以及一記憶體管理電路,耦接至該主機介面、該記憶體介面及該錯誤檢查與校正電路,其中該記憶體管理電路用以發送一讀取指令序列,其中該讀取指令序列用以指示根據至少一硬決策電壓讀取該些記憶胞,以取得至少一硬位元,該錯誤檢查與校正電路用以對該至少一硬位元執行一奇偶檢查程序,以取得多個校驗子,其中每一該至少一硬位元是對應至該些校驗子的至少其中之一,該錯誤檢查與校正電路更用以根據該些校驗子判斷該至少一硬位元是否具有至少一錯誤,若該至少一硬位元具有該至少一錯誤,該錯誤檢查與校正電 路更用以根據該至少一硬位元的一通道資訊與對應於該至少一硬位元的一校驗權重資訊來更新該至少一硬位元,若該至少一硬位元不具有該至少一錯誤,該記憶體管理電路更用以輸出該至少一硬位元。
- 如申請專利範圍第17項所述的記憶體控制電路單元,其中該至少一硬位元包括一第一硬位元,若該至少一硬位元具有該至少一錯誤,該錯誤檢查與校正電路根據該至少一硬位元的該通道資訊與對應於該至少一硬位元的該校驗權重資訊來更新該至少一硬位元的操作包括:判斷所述校驗權重資訊中對應於該第一硬位元的一第一校驗權重資訊是否符合一權重條件;若該第一校驗權重資訊符合該權重條件,判斷該第一硬位元的該通道資訊是否符合一通道條件;若該第一硬位元的該通道資訊符合該通道條件,更新該第一硬位元;以及若該第一硬位元的該通道資訊不符合該通道條件,不更新該第一硬位元。
- 如申請專利範圍第18項所述的記憶體控制電路單元,其中該第一硬位元的該通道資訊包括至少一第一軟位元,並且該錯誤檢查與校正電路判斷該第一硬位元的該通道資訊是否符合該通道條件的操作包括:判斷該至少一第一軟位元是否符合一第一狀態; 若該至少一第一軟位元符合該第一狀態,判定該第一硬位元的該通道資訊符合該通道條件;以及若該至少一第一軟位元不符合該第一狀態,判定該第一硬位元的該通道資訊不符合該通道條件。
- 如申請專利範圍第18項所述的記憶體控制電路單元,其中若該至少一硬位元具有該至少一錯誤,該錯誤檢查與校正電路更用以計數一迭代次數,該錯誤檢查與校正電路更用以判斷該迭代次數是否達到一預設次數,若該迭代次數沒有達到該預設次數,該錯誤檢查與校正電路更用以設定該通道條件為一第一通道條件,若該迭代次數達到該預設次數,該錯誤檢查與校正電路更用以設定該通道條件為一第二通道條件,其中該第一通道條件與該第二通道條件不相同。
- 如申請專利範圍第17項所述的記憶體控制電路單元,其中該讀取指令序列更用以指示根據至少一軟決策電壓讀取該些記憶胞,以取得該至少一硬位元的該通道資訊。
- 如申請專利範圍第21項所述的記憶體控制電路單元,其中該至少一硬決策電壓包括一第一硬決策電壓,該些軟決策電壓包括一第一軟決策電壓與一第二軟決策電壓,該第一軟決策電壓小於該第一硬決策電壓,並且該第二軟決策電壓大於該第一硬決策電壓。
- 如申請專利範圍第17項所述的記憶體控制電路單元,其中若解碼失敗,該記憶體管理電路更用以發送一新的讀取指令序列,其中該新的讀取指令序列用以指示根據至少一新的硬決策電壓讀取該些記憶胞,以取得至少一新的硬位元,該記憶體管理電路更用以根據該至少一硬位元與該至少一新的硬位元,決定該至少一新的硬位元的該通道資訊。
- 如申請專利範圍第17項所述的記憶體控制電路單元,其中若該至少一硬位元具有該至少一錯誤,該錯誤檢查與校正電路更用以計數一迭代次數,該錯誤檢查與校正電路更用以判斷該迭代次數是否達到一中止次數,若該迭代次數達到該中止次數,該錯誤檢查與校正電路更用以判定解碼失敗,若該迭代次數沒有達到該中止次數,該錯誤檢查與校正電路更用以對更新後的該至少一硬位元執行該奇偶檢查程序,以重新取得該些校驗子,並且根據重新取得的該些校驗子判斷更新後的該至少一硬位元是否具有該至少一錯誤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103113690A TWI521529B (zh) | 2014-04-15 | 2014-04-15 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US14/296,383 US9583217B2 (en) | 2014-04-15 | 2014-06-04 | Decoding method, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103113690A TWI521529B (zh) | 2014-04-15 | 2014-04-15 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201539464A TW201539464A (zh) | 2015-10-16 |
TWI521529B true TWI521529B (zh) | 2016-02-11 |
Family
ID=54265160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103113690A TWI521529B (zh) | 2014-04-15 | 2014-04-15 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9583217B2 (zh) |
TW (1) | TWI521529B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10276247B2 (en) * | 2013-12-20 | 2019-04-30 | Seagate Technology Llc | Read retry operations with estimation of written data based on syndrome weights |
US9818488B2 (en) | 2015-10-30 | 2017-11-14 | Seagate Technology Llc | Read threshold voltage adaptation using bit error rates based on decoded data |
US9406377B2 (en) * | 2014-12-08 | 2016-08-02 | Sandisk Technologies Llc | Rewritable multibit non-volatile memory with soft decode optimization |
TWI588833B (zh) * | 2015-11-27 | 2017-06-21 | 群聯電子股份有限公司 | 資料程式化方法與記憶體儲存裝置 |
KR102378541B1 (ko) * | 2015-11-27 | 2022-03-25 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20170083386A (ko) * | 2016-01-08 | 2017-07-18 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10043582B2 (en) | 2016-02-11 | 2018-08-07 | Seagate Technology Llc | Establishing parameters of subsequent read retry operations based on syndrome weights of prior failed decodings |
US10290358B2 (en) | 2016-07-08 | 2019-05-14 | Seagate Technology Llc | Independent read threshold voltage tracking for multiple dependent read threshold voltages using syndrome weights |
US10180868B2 (en) | 2016-07-08 | 2019-01-15 | Seagate Technology Llc | Adaptive read threshold voltage tracking with bit error rate estimation based on non-linear syndrome weight mapping |
TWI607452B (zh) * | 2016-08-12 | 2017-12-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI670715B (zh) * | 2017-04-06 | 2019-09-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US10388394B2 (en) | 2017-07-25 | 2019-08-20 | Apple Inc. | Syndrome weight based evaluation of memory cells performance using multiple sense operations |
US10691540B2 (en) | 2017-11-21 | 2020-06-23 | SK Hynix Inc. | Soft chip-kill recovery for multiple wordlines failure |
KR102540772B1 (ko) * | 2018-04-30 | 2023-06-08 | 에스케이하이닉스 주식회사 | 에러 정정 회로 및 이의 동작 방법 |
CN109450454B (zh) * | 2018-12-24 | 2020-06-30 | 西南交通大学 | 一种用于nand闪存的获取译码软值的方法和装置 |
US10956262B2 (en) * | 2019-03-14 | 2021-03-23 | Micron Technology, Inc. | Deferred error code correction with improved effective data bandwidth performance |
US12066891B2 (en) * | 2021-08-25 | 2024-08-20 | Micron Technology, Inc. | Real time syndrome check |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4802515B2 (ja) * | 2005-03-01 | 2011-10-26 | 株式会社日立製作所 | 半導体装置 |
US7653862B2 (en) | 2005-06-15 | 2010-01-26 | Hitachi Global Storage Technologies Netherlands B.V. | Error detection and correction for encoded data |
US9378835B2 (en) * | 2008-09-30 | 2016-06-28 | Seagate Technology Llc | Methods and apparatus for soft data generation for memory devices based using reference cells |
JP5508549B2 (ja) * | 2010-01-27 | 2014-06-04 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 繰り返し復号されるfec符号におけるエラーフロアの低減 |
US9294132B1 (en) * | 2011-11-21 | 2016-03-22 | Proton Digital Systems, Inc. | Dual-stage data decoding for non-volatile memories |
-
2014
- 2014-04-15 TW TW103113690A patent/TWI521529B/zh active
- 2014-06-04 US US14/296,383 patent/US9583217B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW201539464A (zh) | 2015-10-16 |
US9583217B2 (en) | 2017-02-28 |
US20150293813A1 (en) | 2015-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI521529B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
TWI543178B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
US9529666B2 (en) | Decoding method, memory storage device and memory controlling circuit unit | |
TWI512732B (zh) | 解碼方法、記憶體儲存裝置與非揮發性記憶體模組 | |
US10103748B2 (en) | Decoding method, memory control circuit unit and memory storage device | |
US9906244B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
TWI537966B (zh) | 錯誤處理方法、記憶體儲存裝置及記憶體控制電路單元 | |
US10108490B1 (en) | Decoding method, memory storage device and memory control circuit unit | |
TWI612527B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
US20160350179A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US20180013445A1 (en) | Decoding method, and memory storage apparatus and memory control circuit unit using the same | |
TWI527382B (zh) | 解碼方法、解碼電路、記憶體儲存裝置與控制電路單元 | |
TWI523018B (zh) | 解碼方法、記憶體儲存裝置、記憶體控制電路單元 | |
US10193569B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
TWI672698B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI536749B (zh) | 解碼方法、記憶體儲存裝置與記憶體控制電路單元 | |
US10622077B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
CN105304143B (zh) | 解码方法、存储器控制电路单元及存储器存储装置 | |
CN111258791B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN113496752B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
US10628259B2 (en) | Bit determining method, memory control circuit unit and memory storage device |