TW201637019A - 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents

讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元 Download PDF

Info

Publication number
TW201637019A
TW201637019A TW104111851A TW104111851A TW201637019A TW 201637019 A TW201637019 A TW 201637019A TW 104111851 A TW104111851 A TW 104111851A TW 104111851 A TW104111851 A TW 104111851A TW 201637019 A TW201637019 A TW 201637019A
Authority
TW
Taiwan
Prior art keywords
decoding
voltage level
unit
read voltage
memory
Prior art date
Application number
TW104111851A
Other languages
English (en)
Other versions
TWI582779B (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 TW104111851A priority Critical patent/TWI582779B/zh
Priority to US14/745,472 priority patent/US9639419B2/en
Publication of TW201637019A publication Critical patent/TW201637019A/zh
Application granted granted Critical
Publication of TWI582779B publication Critical patent/TWI582779B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5004Voltage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一種讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元。所述方法包括:根據第一讀取電壓準位來讀取可複寫式非揮發性記憶體模組中的第一區域,以獲得第一編碼單元,其中所述第一編碼單元屬於區塊碼;對所述第一編碼單元執行第一解碼程序並且記錄第一解碼資訊;根據第二讀取電壓準位來讀取所述第一區域,以獲得第二編碼單元,其中所述第二編碼單元屬於所述區塊碼;對所述第二編碼單元執行第二解碼程序並且記錄第二解碼資訊;以及根據所述第一解碼資訊與所述第二解碼資訊來估測並獲得第三讀取電壓準位。藉此,可提升對於使用區塊碼之可複寫式非揮發性記憶體模組的管理能力。

Description

讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元
本發明是有關於一種記憶體管理方法,且特別是有關於一種讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,為了確保資料的正確性,在將某一筆資料寫入至可複寫式非揮發性記憶體模組之前,此資料會被編碼。而編碼後的資料會被寫入至可複寫式非揮發性記憶體模組中。當欲讀取此筆資料時,編碼後的資料會被讀取出來並且被解碼。若資料 可以成功地解碼,表示其中的錯誤位元之數目不多且此些錯誤位元可以被更正。然而,若資料無法成功地解碼(即,解碼失敗),則不同的讀取電壓可能會被用來重新讀取資料。但是,在某些情況下,即使可用的多個讀取電壓都已經被使用過了,讀取出的資料仍然無法被成功地解碼,導致資料讀取失敗。特別是,對於使用區塊碼進行編碼的資料來說,這樣的情形更為嚴重。
本發明提供一種讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元,可提升對於使用區塊碼之可複寫式非揮發性記憶體模組的管理能力。
本發明的一範例實施例提供一種讀取電壓準位估測方法,其用於可複寫式非揮發性記憶體模組,所述讀取電壓準位估測方法包括:根據第一讀取電壓準位來讀取所述可複寫式非揮發性記憶體模組中的第一區域,以獲得第一編碼單元,其中所述第一編碼單元屬於區塊碼;對所述第一編碼單元執行第一解碼程序並且記錄第一解碼資訊;根據第二讀取電壓準位來讀取所述第一區域,以獲得第二編碼單元,其中所述第二編碼單元屬於所述區塊碼;對所述第二編碼單元執行第二解碼程序並且記錄第二解碼資訊;以及根據所述第一解碼資訊與所述第二解碼資訊來估測並獲得第三讀取電壓準位。
在本發明的一範例實施例中,所述區塊碼由多個子編碼 單元組成,所述子編碼單元中的第一位元是由多個編碼程序決定。
在本發明的一範例實施例中,所述編碼程序具有不同的編碼方向。
在本發明的一範例實施例中,所述第一解碼資訊包括第一數值,所述第二解碼資訊包括第二數值,其中根據所述第一解碼資訊與所述第二解碼資訊來估測並獲得所述第三讀取電壓準位的步驟包括:比較所述第一數值與所述第二數值並根據比較結果來決定所述第三讀取電壓準位。
在本發明的一範例實施例中,所述第一數值與所述第一解碼程序的第一解碼結果有關,所述第二數值與所述第二解碼程序的第二解碼結果有關。
在本發明的一範例實施例中,所述第一數值是正相關於所述第一解碼程序的第一解碼成功單元數,所述第二數值是正相關於所述第二解碼程序的第二解碼成功單元數。
在本發明的一範例實施例中,所述讀取電壓準位估測方法更包括:根據所述第一解碼結果獲得第一行解碼成功單元數與第一列解碼成功單元數;根據所述第一行解碼成功單元數與所述第一列解碼成功單元數來決定所述第一數值;根據所述第二解碼結果獲得第二行解碼成功單元數與第二列解碼成功單元數;以及根據所述第二行解碼成功單元數與所述第二列解碼成功單元數來決定所述第二數值。
在本發明的一範例實施例中,根據所述第一解碼資訊與 所述第二解碼資訊來估測並獲得所述第三讀取電壓準位的步驟包括:將所述第一讀取電壓準位與所述第二讀取電壓準位的其中之一決定為所述第三讀取電壓準位。
在本發明的一範例實施例中,所述讀取電壓準位估測方法更包括:判斷所述第一解碼程序是否失敗,其中根據所述第二讀取電壓準位來讀取所述第一區域的步驟是在判定所述第一解碼程序失敗之後執行。
在本發明的一範例實施例中,所述讀取電壓準位估測方法更包括:根據所述第三讀取電壓準位來執行與所述可複寫式非揮發性記憶體模組有關的預設操作,其中所述預設操作包括以下操作的至少其中之一:讀取所述第一區域以獲得對應於第三解碼單元的多個軟位元並根據所述軟位元來對所述第三解碼單元執行迭代解碼;決定所述第一區域中的多個記憶胞的損耗程度或所述記憶胞的電壓分布狀態;以及決定對應於所述第一區域的預設程式化電壓。
在本發明的一範例實施例中,所述讀取電壓準位估測方法更包括:根據所述第三讀取電壓準位來讀取所述第一區域,以獲得第三編碼單元;以及對所述第三編碼單元執行第三解碼程序。
在本發明的一範例實施例中,所述第一解碼程序與所述第二解碼程序皆為硬位元模式解碼。
本發明的一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電 路單元。所述連接介面單元用以耦接至主機系統。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組。其中所述記憶體控制電路單元用以發送第一讀取指令序列,其中所述第一讀取指令序列用以指示根據第一讀取電壓準位來讀取所述可複寫式非揮發性記憶體模組中的第一區域,以獲得第一編碼單元,其中所述第一編碼單元屬於區塊碼,其中所述記憶體控制電路單元更用以對所述第一編碼單元執行第一解碼程序並且記錄第一解碼資訊,其中所述記憶體控制電路單元更用以發送第二讀取指令序列,其中所述第二讀取指令序列用以指示根據第二讀取電壓準位來讀取所述第一區域,以獲得第二編碼單元,其中所述第二編碼單元屬於所述區塊碼,其中所述記憶體控制電路單元更用以對所述第二編碼單元執行第二解碼程序並且記錄第二解碼資訊,其中所述記憶體控制電路單元更用以根據所述第一解碼資訊與所述第二解碼資訊來估測並獲得第三讀取電壓準位。
在本發明的一範例實施例中,所述區塊碼由多個子編碼單元組成,所述子編碼單元中的第一位元是由多個編碼程序決定。
在本發明的一範例實施例中,所述編碼程序具有不同的編碼方向。
在本發明的一範例實施例中,所述第一解碼資訊包括第一數值,所述第二解碼資訊包括第二數值,其中所述記憶體控制電路單元根據所述第一解碼資訊與所述第二解碼資訊來估測並獲 得所述第三讀取電壓準位的操作包括:比較所述第一數值與所述第二數值並根據比較結果來決定所述第三讀取電壓準位。
在本發明的一範例實施例中,所述第一數值與所述第一解碼程序的第一解碼結果有關,所述第二數值與所述第二解碼程序的第二解碼結果有關。
在本發明的一範例實施例中,所述第一數值是正相關於所述第一解碼程序的第一解碼成功單元數,所述第二數值是正相關於所述第二解碼程序的第二解碼成功單元數。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以根據所述第一解碼結果獲得第一行解碼成功單元數與第一列解碼成功單元數,其中所述記憶體控制電路單元更用以根據所述第一行解碼成功單元數與所述第一列解碼成功單元數來決定所述第一數值,其中所述記憶體控制電路單元更用以根據所述第二解碼結果獲得第二行解碼成功單元數與第二列解碼成功單元數,其中所述記憶體控制電路單元更用以根據所述第二行解碼成功單元數與所述第二列解碼成功單元數來決定所述第二數值。
在本發明的一範例實施例中,所述記憶體控制電路單元根據所述第一解碼資訊與所述第二解碼資訊來估測並獲得所述第三讀取電壓準位的操作包括:將所述第一讀取電壓準位與所述第二讀取電壓準位的其中之一決定為所述第三讀取電壓準位。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以判斷所述第一解碼程序是否失敗,其中所述記憶體控制電 路單元發送所述第二讀取指令序列的操作是在判定所述第一解碼程序失敗之後執行。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以根據所述第三讀取電壓準位來執行與所述可複寫式非揮發性記憶體模組有關的預設操作,其中所述預設操作包括以下操作的至少其中之一:指示讀取所述第一區域以獲得對應於第三解碼單元的多個軟位元並根據所述軟位元來對所述第三解碼單元執行迭代解碼;決定所述第一區域中的多個記憶胞的損耗程度或所述記憶胞的電壓分布狀態;以及決定對應於所述第一區域的預設程式化電壓。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以指示根據所述第三讀取電壓準位來讀取所述第一區域,以獲得第三編碼單元,其中所述記憶體控制電路單元更用以對所述第三編碼單元執行第三解碼程序。
在本發明的一範例實施例中,所述第一解碼程序與所述第二解碼程序皆為硬位元模式解碼。
本發明的一範例實施例提供一種記憶體控制電路單元,其用於控制可複寫式非揮發性記憶體模組,所述記憶體控制電路單元包括主機介面、記憶體介面、錯誤檢查與校正電路及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面、所述記憶體介面及所述錯誤檢查與校 正電路,其中所述記憶體管理電路用以發送第一讀取指令序列,其中所述第一讀取指令序列用以指示根據第一讀取電壓準位來讀取所述可複寫式非揮發性記憶體模組中的第一區域,以獲得第一編碼單元,其中所述第一編碼單元屬於區塊碼,其中所述錯誤檢查與校正電路用以對所述第一編碼單元執行第一解碼程序,並且所述記憶體管理電路更用以記錄第一解碼資訊,其中所述記憶體管理電路更用以發送第二讀取指令序列,其中所述第二讀取指令序列用以指示根據第二讀取電壓準位來讀取所述第一區域,以獲得第二編碼單元,其中所述第二編碼單元屬於所述區塊碼,其中所述錯誤檢查與校正電路更用以對所述第二編碼單元執行第二解碼程序,並且所述記憶體管理電路更用以記錄第二解碼資訊,其中所述記憶體管理電路更用以根據所述第一解碼資訊與所述第二解碼資訊來估測並獲得第三讀取電壓準位。
在本發明的一範例實施例中,所述區塊碼由多個子編碼單元組成,所述子編碼單元中的第一位元是由多個編碼程序決定。
在本發明的一範例實施例中,所述編碼程序具有不同的編碼方向。
在本發明的一範例實施例中,所述第一解碼資訊包括第一數值,所述第二解碼資訊包括第二數值,其中所述記憶體管理電路根據所述第一解碼資訊與所述第二解碼資訊來估測並獲得所述第三讀取電壓準位的操作包括:比較所述第一數值與所述第二數值並根據比較結果來決定所述第三讀取電壓準位。
在本發明的一範例實施例中,所述第一數值與所述第一解碼程序的第一解碼結果有關,所述第二數值與所述第二解碼程序的第二解碼結果有關。
在本發明的一範例實施例中,所述第一數值是正相關於所述第一解碼程序的第一解碼成功單元數,所述第二數值是正相關於所述第二解碼程序的第二解碼成功單元數。
在本發明的一範例實施例中,所述記憶體管理電路更用以根據所述第一解碼結果獲得第一行解碼成功單元數與第一列解碼成功單元數,其中所述記憶體管理電路更用以根據所述第一行解碼成功單元數與所述第一列解碼成功單元數來決定所述第一數值,其中所述記憶體管理電路更用以根據所述第二解碼結果獲得第二行解碼成功單元數與第二列解碼成功單元數,其中所述記憶體管理電路更用以根據所述第二行解碼成功單元數與所述第二列解碼成功單元數來決定所述第二數值。
在本發明的一範例實施例中,所述記憶體管理電路根據所述第一解碼資訊與所述第二解碼資訊來估測並獲得所述第三讀取電壓準位的操作包括:將所述第一讀取電壓準位與所述第二讀取電壓準位的其中之一決定為所述第三讀取電壓準位。
在本發明的一範例實施例中,所述記憶體管理電路更用以判斷所述第一解碼程序是否失敗,其中所述記憶體管理電路發送所述第二讀取指令序列的操作是在判定所述第一解碼程序失敗之後執行。
在本發明的一範例實施例中,所述記憶體管理電路更用以根據所述第三讀取電壓準位來執行與所述可複寫式非揮發性記憶體模組有關的預設操作,其中所述預設操作包括以下操作的至少其中之一:指示讀取所述第一區域以獲得對應於第三解碼單元的多個軟位元並且所述錯誤檢查與校正電路更用以根據所述軟位元來對所述第三解碼單元執行迭代解碼;決定所述第一區域中的多個記憶胞的損耗程度或所述記憶胞的電壓分布狀態;以及決定對應於所述第一區域的預設程式化電壓。
在本發明的一範例實施例中,所述記憶體管理電路更用以指示根據所述第三讀取電壓準位來讀取所述第一區域,以獲得第三編碼單元,其中所述錯誤檢查與校正電路更用以對所述第三編碼單元執行第三解碼程序。
在本發明的一範例實施例中,所述第一解碼程序與所述第二解碼程序皆為硬位元模式解碼。
基於上述,在利用不同的讀取電壓準位來讀取記憶體並且嘗試對所獲得的資料進行解碼之後,對應於不同解碼程序的解碼資訊會被記錄下來。爾後,此些解碼資訊即可用來作為估測一個適當的讀取電壓準位之依據。藉此,對於使用區塊碼之可複寫式非揮發性記憶體模組的管理能力可被提升。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧電腦
122‧‧‧微處理器
124‧‧‧隨機存取記憶體
126‧‧‧系統匯流排
128‧‧‧資料傳輸介面
13‧‧‧輸入/輸出裝置
21‧‧‧滑鼠
22‧‧‧鍵盤
23‧‧‧顯示器
24‧‧‧印表機
25‧‧‧隨身碟
26‧‧‧記憶卡
27‧‧‧固態硬碟
31‧‧‧數位相機
32‧‧‧SD卡
33‧‧‧MMC卡
34‧‧‧記憶棒
35‧‧‧CF卡
36‧‧‧嵌入式儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
502‧‧‧記憶胞陣列
504‧‧‧字元線控制電路
506‧‧‧位元線控制電路
508‧‧‧行解碼器
510‧‧‧資料輸入/輸出緩衝器
512‧‧‧控制電路
602‧‧‧記憶胞
604‧‧‧位元線
606‧‧‧字元線
608‧‧‧共用源極線
612、614‧‧‧電晶體
702‧‧‧記憶體管理電路
704‧‧‧主機介面
706‧‧‧記憶體介面
708‧‧‧錯誤檢查與校正電路
710‧‧‧緩衝記憶體
712‧‧‧電源管理電路
800(0)~800(R)‧‧‧實體抹除單元
810(0)~810(D)‧‧‧邏輯單元
802‧‧‧儲存區
806‧‧‧系統區
901、902、911、912、1110、1120‧‧‧分佈
913‧‧‧重疊區域
Vread-0~Vread-3、V1~V5‧‧‧讀取電壓準位
1010‧‧‧編碼單元
1011~101n‧‧‧子編碼單元
b11~bnm‧‧‧位元
1101~1106‧‧‧電壓區間
b1~b5‧‧‧軟位元
S1201~S1206‧‧‧步驟
圖1是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是根據本發明的一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據本發明的一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。
圖6是根據本發明的一範例實施例所繪示的記憶胞陣列的示意圖。
圖7是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
圖8是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
圖9是根據本發明的一範例實施例所繪示的多個記憶胞的臨界電壓分佈的示意圖。
圖10是根據本發明的一範例實施例所繪示的編碼單元的示意圖。
圖11是根據本發明的一範例實施例所繪示的讀取多個軟位 元的示意圖。
圖12是根據本發明的一範例實施例所繪示的讀取電壓準位估測方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。圖2是根據本發明的一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
請參照圖1,主機系統11一般包括電腦12與輸入/輸出(input/output,I/O)裝置13。電腦12包括微處理器122、隨機存取記憶體(random access memory,RAM)124、系統匯流排126與資料傳輸介面128。輸入/輸出裝置13包括如圖2的滑鼠21、鍵盤22、顯示器23與印表機24。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置13,輸入/輸出裝置13可更包括其他裝置。
在一範例實施例中,記憶體儲存裝置10是透過資料傳輸介面128與主機系統11的其他元件耦接。藉由微處理器122、隨機存取記憶體124與輸入/輸出裝置13的運作可將資料寫入至記憶 體儲存裝置10或從記憶體儲存裝置10中讀取資料。例如,記憶體儲存裝置10可以是如圖2所示的隨身碟25、記憶卡26或固態硬碟(Solid State Drive,SSD)27等的可複寫式非揮發性記憶體儲存裝置。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
一般而言,主機系統11為可實質地與記憶體儲存裝置10配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統11是以電腦系統來作說明,然而,另一範例實施例中,主機系統11可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)31時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡32、MMC卡33、記憶棒(memory stick)34、CF卡35或嵌入式儲存裝置36(如圖3所示)。嵌入式儲存裝置36包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以 是符合並列先進附件(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)標準或其他適合的標準。連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元404之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406可以是單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)、複數階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據本發明的一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。圖6是根據本發明的一範例實施例所繪示的記憶胞陣列的示意圖。
請參照圖5,可複寫式非揮發性記憶體模組406包括記憶胞陣列502、字元線控制電路504、位元線控制電路506、行解碼器(column decoder)508、資料輸入/輸出緩衝器510與控制電路512。
在本範例實施例中,記憶胞陣列502可包括用以儲存資料的多個記憶胞602、多個選擇閘汲極(select gate drain,SGD)電晶體612與多個選擇閘源極(select gate source,SGS)電晶體614、以及連接此些記憶胞的多條位元線604、多條字元線606、與共用源極線608(如圖6所示)。記憶胞602是以陣列方式(或立體堆疊的方式)配置在位元線604與字元線606的交叉點上。當從記憶體控制電路單元404接收到寫入指令或讀取指令時,控制電路512會控制字元線控制電路504、位元線控制電路506、行解碼器508、資 料輸入/輸出緩衝器510來寫入資料至記憶胞陣列502或從記憶胞陣列502中讀取資料,其中字元線控制電路504用以控制施予至字元線606的電壓,位元線控制電路506用以控制施予至位元線604的電壓,行解碼器508依據指令中的列位址以選擇對應的位元線,並且資料輸入/輸出緩衝器510用以暫存資料。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,因而改變了記憶胞的臨界電壓。此改變臨界電壓的程序亦稱為“把資料寫入至記憶胞”或“程式化記憶胞”。隨著臨界電壓的改變,記憶胞陣列502的每一個記憶胞具有多個儲存狀態。並且透過施予讀取電壓可以判斷記憶胞是屬於哪一個儲存狀態,藉此取得記憶胞所儲存的一或多個位元。
圖7是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
請參照圖7,記憶體控制電路單元404包括記憶體管理電路702、主機介面704、記憶體介面706及錯誤檢查與校正電路708。
記憶體管理電路702用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路702具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路702 的操作時,等同於說明記憶體控制電路單元404的操作。
在本範例實施例中,記憶體管理電路702的控制指令是以韌體型式來實作。例如,記憶體管理電路702具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在另一範例實施例中,記憶體管理電路702的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路702具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路702的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在另一範例實施例中,記憶體管理電路702的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路702包括微控制器、實體單元管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。實體單元管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,實體單元管理電路用以管理可複寫 式非揮發性記憶體模組406的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令序列以將資料寫入至可複寫式非揮發性記憶體模組406中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令序列以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組406執行相對應的寫入、讀取及抹除等操作。
主機介面704是耦接至記憶體管理電路702並且用以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面704來傳送至記憶體管理電路702。在本範例實施例中,主機介面704是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面704亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面706是耦接至記憶體管理電路702並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複 寫式非揮發性記憶體模組406的資料會經由記憶體介面706轉換為可複寫式非揮發性記憶體模組406所能接受的格式。具體來說,若記憶體管理電路702要存取可複寫式非揮發性記憶體模組406,記憶體介面706會傳送對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
錯誤檢查與校正電路708是耦接至記憶體管理電路702並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路702從主機系統11中接收到寫入指令時,錯誤檢查與校正電路708會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路702會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路702從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路708會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體710與電源管理電路712。緩衝記憶體710是耦接至記憶體管理電路702並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路 712是耦接至記憶體管理電路702並且用以控制記憶體儲存裝置10的電源。
圖8是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。必須瞭解的是,在此描述可複寫式非揮發性記憶體模組406之實體抹除單元的運作時,以“選擇”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
可複寫式非揮發性記憶體模組406的記憶胞會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元至少可被分類為下實體程式化單元與上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit,LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit,MSB)是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。在此範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁 面或是實體扇(sector)。若實體程式化單元為實體頁面,則每一個實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體扇,用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤更正碼)。在本範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte,B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,本發明並不限制實體扇的大小以及個數。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊。
請參照圖8,記憶體管理電路702可將可複寫式非揮發性記憶體模組406的實體抹除單元800(0)~800(R)邏輯地劃分為多個區域,例如為儲存區802與系統區806。
儲存區802的實體抹除單元是用以儲存來自主機系統11的資料。儲存區802中會儲存有效資料與無效資料。例如,當主機系統要刪除一份有效資料時,被刪除的資料可能還是儲存在儲存區802中,但會被標記為無效資料。沒有儲存有效資料的實體抹除單元亦被稱為閒置(spare)實體抹除單元。例如,被抹除以後的實體抹除單元便會成為閒置實體抹除單元。若儲存區802或系統區806中有實體抹除單元損壞時,儲存區802中的實體抹除單元也可以用來替換損壞的實體抹除單元。倘若儲存區802中沒有可用的實體抹除單元來替換損壞的實體抹除單元時,則記憶體管 理電路702可能會將整個記憶體儲存裝置10宣告為寫入保護(write protect)狀態,而無法再寫入資料。此外,有儲存有效資料的實體抹除單元亦被稱為非閒置(non-spare)實體抹除單元。
系統區806的實體抹除單元是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
儲存區802與系統區806的實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置10的運作中,實體抹除單元關聯至儲存區802與系統區806的分組關係會動態地變動。例如,當系統區806中的實體抹除單元損壞而被儲存區802的實體抹除單元取代時,則原本在儲存區802的實體抹除單元會被關聯至系統區806。
記憶體管理電路702會配置邏輯單元810(0)~810(D)以映射至儲存區802中的實體抹除單元800(0)~800(A)。例如,在本範例實施例中,主機系統11是透過邏輯位址來存取儲存區802中的資料,因此,每一個邏輯單元810(0)~810(D)是指一個邏輯位址。此外,在一範例實施例中,每一個邏輯單元810(0)~810(D)也可以是指一個邏輯扇、一個邏輯程式化單元、一個邏輯抹除單元或者由多個連續的邏輯位址組成。每一個邏輯單元810(0)~810(D)是映射至一或多個實體單元。在本範例實施例中,一個實體單元是指一個實體抹除單元。然而,在另一範例實施例中,一個實體單元也可以是一個實體位址、一個實體扇、一個實體程式化單元或者 是由多個連續的實體位址組成,本發明不加以限制。記憶體管理電路702會將邏輯單元與實體單元之間的映射關係記錄於一或多個邏輯-實體映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路702可根據此一或多個邏輯-實體映射表來執行對於記憶體儲存裝置10的資料存取。
圖9是根據本發明的一範例實施例所繪示的多個記憶胞的臨界電壓分佈的示意圖。
請參照圖9,橫軸代表記憶胞的臨界電壓,而縱軸代表記憶胞個數。例如,圖9是表示一個實體單元中各個記憶胞的臨界電壓。在此假設當某一個記憶胞的臨界電壓是落在分佈901時,此記憶胞所儲存的是位元“1”;相反地,若某一個記憶胞的臨界電壓是落在分佈902時,此記憶胞所儲存的是位元“0”。值得一提的是,在本範例實施例中,每一個記憶胞是用以儲存一個位元,故臨界電壓的分佈有兩種可能。然而,在其他範例實施例中,若一個記憶胞是用以儲存多個位元,則對應的臨界電壓的分佈則可能有四種、八種或其他任意個可能。此外,本發明也不限制每一個分佈所代表的位元。
當要從可複寫式非揮發性記憶體模組406讀取資料時,記憶體管理電路702會發送一讀取指令序列至可複寫式非揮發性記憶體模組406。此讀取指令序列包括一或多個指令或程式碼。此讀取指令序列用以指示讀取某一實體單元中的多個記憶胞以取得 多個位元。例如,根據此讀取指令序列,可複寫式非揮發性記憶體模組406會使用讀取電壓Vread-0來讀取此些記憶胞並且將對應的位元資料傳送給記憶體管理電路702。例如,若某一個記憶胞的臨界電壓小於讀取電壓Vread-0(例如,屬於分布901的記憶胞),則記憶體管理電路702會讀到位元“1”;若某一個記憶胞的臨界電壓大於讀取電壓Vread-0(例如,屬於分布902的記憶胞),則記憶體管理電路702會讀到位元“0”。
然而,隨著可複寫式非揮發性記憶體模組406的使用時間增加及/或操作環境改變,分佈901與902會發生性能衰退(degradation)。發生性能衰退後,分佈901與902可能會逐漸相互靠近甚至相互重疊。例如,分佈911與分佈912分別用來表示性能衰退後的分佈901與902。分佈911與分佈912包含一個重疊區域913。重疊區域913表示有一些記憶胞中所儲存的應該是位元“1”,但其臨界電壓大於讀取電壓Vread-0;或者,有一些記憶胞中所儲存的應該是位元“0”,但其臨界電壓小於讀取電壓Vread-0。發生性能衰退後,若持續使用讀取電壓Vread-0來讀取屬於分佈911或分佈912的記憶胞,則讀取到的位元可能會包含較多錯誤。例如,將屬於分布911的記憶胞誤判為屬於分布912,或者將屬於分布912的記憶胞誤判為屬於分布911。因此,在本範例實施例中,錯誤檢查與校正電路708會對讀取到的位元進行解碼,從而更正其中的錯誤。在以下的範例實施例中,讀取電壓亦被稱為讀取電壓準位(read voltage level)。每一個讀取電壓準位具有至少一個電 壓值。
在本範例實施例中,錯誤檢查與校正電路708會編碼欲儲存至可複寫式非揮發性記憶體模組406的資料並產生一個編碼單元。此編碼單元是屬於區塊碼。記憶體管理電路702會發送一個寫入指令序列至可複寫式非揮發性記憶體模組406。此寫入指令序列包含至少一指令或程式碼。此寫入指令序列用以指示將此編碼單元寫入至可複寫式非揮發性記憶體模組406中的一個適當區域(以下亦稱為第一區域)。例如,第一區域可以是至少一個實體單元。根據此寫入指令序列,可複寫式非揮發性記憶體模組406會將此編碼單元會儲存至此第一區域。爾後,當記憶體管理電路702指示讀取第一區域的資料時,可複寫式非揮發性記憶體模組406會從第一區域中讀取此編碼單元,並且錯誤檢查與校正電路708會執行一解碼程序以解碼此編碼單元。
圖10是根據本發明的一範例實施例所繪示的編碼單元的示意圖。
請參照圖10,編碼單元1010包括位元b11~bnm。若將位元b11~bnm分組為子編碼單元1011~101n,則每一個子編碼單元1011~101n具有m個位元。n與m皆可以是大於1的任意正整數。在本範例實施例中,部分的位元是由多個編碼程序所決定。例如,可將編碼方向為行(row)方向(例如,由左至右)的編碼程序視為第一類編碼程序,並將編碼方向為列方向(例如,由上至下)的編碼程序視為第二類編碼程序。在一範例實施例中,第一類編碼程序亦 稱為行(row)編碼程序,而第二類編碼程序亦稱為列(column)編碼程序。
在本範例實施例中,第一類編碼程序會先被執行,而根據第一類編碼程序的編碼結果,第二類編碼程序會接續被執行。例如,假設欲儲存的使用者資料包含位元b11~b1p、b21~b2p、...、br1~brp,則在第一類編碼程序中,位元b11~b1p、b21~b2p、...、br1~brp會分別被編碼以獲得位元b11~b1m(即,子編碼單元1011)、b21~b2m(即,子編碼單元1012)、...、br1~brm(即,子編碼單元101r)。位元b1q~b1m為對應於位元b11~b1p的錯誤更正碼,位元b2q~b2m為對應於位元b21~b2p的錯誤更正碼,以此類推,其中q等於p+1。在獲得子編碼單元1011~101r之後,第二類編碼程序會被執行。例如,在第二類編碼程序中,位元b11~br1(即,每一個子編碼單元1011~101r中的第一個位元)、位元b12~br2(即,每一個子編碼單元1011~101r中的第二個位元)、...、位元b1m~brm(即,每一個子編碼單元1011~101r中的第m個位元)會分別被編碼以獲得位元b11~bn1、b12~bn2、...、b1m~bnm。位元bs1~bn1為對應於位元b11~br1的錯誤更正碼,位元bs2~bn2為對應於位元b12~br2的錯誤更正碼,以此類推,其中s等於r+1。
在將編碼單元1010讀取出來之後,對應於所採用的編碼順序,編碼單元1010會被解碼。例如,在本範例實施例中,解碼方向為列方向的解碼程序(亦稱為第二類解碼程序)會先被執行,而根據第二類解碼程序的解碼結果,解碼方向為行方向的解碼程序 (亦稱為第一類解碼程序)會接續被執行。例如,在第二類解碼程序中,位元bs1~bn1、bs2~bn2、...、bsm~bnm會被分別用來對位元b11~br1、b12~br2、...、b1m~brm進行解碼。在獲得解碼後的位元b11~br1、b12~br2、...、b1m~brm之後,第一類解碼程序會被執行。例如,在第一類解碼程序中,由第二類解碼程序解碼後的位元b1q~b1m、b2q~b2m、...、brq~brm會分別被用來對由第二類解碼程序解碼後的位元b11~b1p、b21~b2p、...、br1~brp進行解碼以獲得解碼後的使用者資料。
值得一提的是,上述範例實施例中提及的編碼單元之組成以及編/解碼順序只是一個範例而非用以限制本發明。例如,在另一範例實施例中,所產生的錯誤更正碼也可以是排列在對應的使用者資料之前或者穿插在對應的使用者資料中。或者,在一範例實施例中,在編碼使用者資料時,亦可以是先執行第二類編碼程序,然後再依照第二類編碼程序的編碼結果執行第一類編碼程序;相對應的,在解碼編碼單元時,亦可以是先執行第一類解碼程序,然後再根據第一類解碼程序的解碼結果來執行第二類解碼程序。此外,第一類編碼程序(或第一類解碼程序)與第二類編碼程序(或第二類解碼程序)的編碼方向不同,但是第一類編碼程序(或第一類解碼程序)與第二類編碼程序(或第二類解碼程序)可採用相同或不同的編/解碼演算法。例如,第一類編碼程序與對應的第一類解碼程序可以是包含低密度奇偶檢查校正碼(low density parity code,LDPC)、BCH碼及里德-所羅門碼(Reed-solomon code,RS code)、方塊渦輪碼(block turbo code,BTC)等各式編/解碼演算法的至少其中之一;而第二類編碼程序與對應的第二類解碼程序也可以是包含上述編/解碼演算法的至少其中之一或者其他類型的編/解碼演算法。
在本範例實施例中,記憶體管理電路702會發送一讀取指令序列(以下亦稱為第一讀取指令序列)至可複寫式非揮發性記憶體模組406。此第一讀取指令序列用以指示從上述第一區域讀取資料。在接收到此第一讀取指令序列之後,可複寫式非揮發性記憶體模組406會根據一讀取電壓準位(以下亦稱為第一讀取電壓準位)來讀取此第一區域中的多個記憶胞以獲得一編碼單元(以下亦稱為第一編碼單元)。此第一編碼單元屬於區塊碼。關於編碼單元的介紹已詳述於上,故在此便不贅述。然後,錯誤檢查與校正電路708會對第一編碼單元執行一解碼程序(以下亦稱為第一解碼程序)並且記錄對應的解碼資訊(以下亦稱為第一解碼資訊)。
在本範例實施例中,第一解碼程序是屬於迭代解碼程序。例如,在第一解碼程序中,錯誤檢查與校正電路708會執行至少一次的迭代解碼運算,以藉由迭代地更新第一編碼單元的可靠度資訊(例如,解碼初始值)來提高第一編碼單元的解碼成功率。每一次的迭代解碼運算可包含相同或相似於圖10的範例實施例所介紹的解碼操作。一般來說,根據編碼單元中錯誤(亦稱為錯誤位元)的數目,第一解碼程序可能成功或失敗。例如,經過至少一次的迭代解碼運算之後,若解碼成功,例如,錯誤檢查與校正電路 708判定第一編碼單元中的錯誤皆已被更正,則錯誤檢查與校正電路708會輸出解碼後的(或更正後的)第一編碼單元。反之,若因為第一編碼單元中錯誤位元的數目過多及/或此些錯誤位元的分布剛好處於無法被更正的位置等因素,導致錯誤檢查與校正電路708所執行的迭代解碼運算之次數已經達到一預設次數,則錯誤檢查與校正電路708會判定解碼失敗。
值得一提的是,從圖10的範例實施例可知,對應於某一行的第一類解碼程序或對應於某一列的第二類解碼程序皆可能成功或失敗。每一次執行的第一類解碼程序是各自獨立的,並且每一次執行的第二類解碼程序也是各自獨立的。例如,對於子編碼單元1011的第一類解碼程序可能成功或失敗,並且對於子編碼單元1012的第二類解碼程序也可能成功或失敗,兩者可能無關。因此,即使第一編碼單元解碼失敗,但其中仍然可能存在成功解碼的行、列或者位元。
記憶體管理電路702會將這些成功解碼的資訊記錄下來作為第一解碼資訊。例如,此第一解碼資訊可以包括一個數值(以下亦稱為第一數值)。第一數值與第一編碼單元的解碼結果(以下亦稱為第一解碼結果)有關。例如,第一數值是根據第一解碼結果來決定。例如,第一數值是正相關於(positively correlated)第一解碼程序的解碼成功單元數(以下亦稱為第一解碼成功單元數)。在本範例實施例中,第一解碼成功單元數是指第一編碼單元中被成功解碼的單元之數目。例如,一個被成功解碼的單元可以是指一個被 成功解碼的行、一個被成功解碼的列、或者一個被成功解碼的位元。記憶體管理電路702可直接將此第一解碼成功單元數作為此第一數值。例如,記憶體管理電路702可以直接將第一編碼單元中被成功解碼的行的數目(以下亦稱為第一行解碼成功單元數)、第一編碼單元中被成功解碼的列的數目(以下亦稱為第一列解碼成功單元數)、或者第一編碼單元中被成功解碼的位元的數目作為此第一數值。或者,記憶體管理電路702也可以根據第一行解碼成功單元數與第一列解碼成功單元數來執行一邏輯運算以決定此第一數值。例如,記憶體管理電路702可以將第一行解碼成功單元數乘上一個權重(以下亦稱為第一權重)得到一個參數(以下亦稱為第一參數)並且將第一列解碼成功單元數乘上另一個權重(以下亦稱為第二權重)得到另一個參數(以下亦稱為第二參數);記憶體管理電路702可以將第一參數與第二參數相加以決定此第一數值。以圖10的範例實施例為例,第一權重可以是n/(n+m),並且第二權重可以是m/(n+m)。然而,第一權重與第二權重也可以各別根據實務上的需求來設定,本發明不加以限制。此外,在另一範例實施例中,記憶體管理電路702也可以將第一解碼成功單元數輸入至一查找表並且將此查找表的輸出作為第一數值。
在判定對於第一編碼單元解碼失敗之後,記憶體管理電路702會指示可複寫式非揮發性記憶體模組406調整讀取電壓。例如,將用以讀取第一區域的讀取電壓從第一讀取電壓準位調整到另一讀取電壓準位(以下亦稱為第二讀取電壓準位)。記憶體管理 電路702會發送另一讀取指令序列(以下亦稱為第二讀取指令序列)至可複寫式非揮發性記憶體模組406。第二讀取指令序列用以指示根據第二讀取電壓準位來讀取上述第一區域。在接收到第二讀取指令序列之後,可複寫式非揮發性記憶體模組406會根據第二讀取電壓準位來再次讀取此第一區域中的記憶胞以獲得另一編碼單元(以下亦稱為第二編碼單元)。第二編碼單元同樣是屬於區塊碼。由於用來讀取資料的讀取電壓準位改變,故第二編碼單元中部份的位元可能會與第一編碼單元中位於相同位置的位元不同。例如,第二編碼單元中的位元b11可能會與第一編碼單元中的位元b11不同。
錯誤檢查與校正電路708會對第二編碼單元執行另一解碼程序(以下亦稱為第二解碼程序)並且記錄對應的解碼資訊(以下亦稱為第二解碼資訊)。關於如何執行對於編碼單元的解碼程序已詳述於上,故在此便不贅述。
值得一提的是,即使第二編碼單元解碼失敗,但其中仍然可能存在成功解碼的行、列或者位元。記憶體管理電路702會將這些成功解碼的資訊記錄下來作為第二解碼資訊。例如,此第二解碼資訊可以包括一個數值(以下亦稱為第二數值)。第二數值與第二編碼單元的解碼結果(以下亦稱為第二解碼結果)有關。例如,第二數值是根據第二解碼結果來決定。例如,第二數值是正相關於第二解碼程序的解碼成功單元數(以下亦稱為第二解碼成功單元數)。在本範例實施例中,第二解碼成功單元數是指第二編碼單 元中被成功解碼的單元之數目。例如,記憶體管理電路702可以直接將第二編碼單元中被成功解碼的行的數目(以下亦稱為第二行解碼成功單元數)、第二編碼單元中被成功解碼的列的數目(以下亦稱為第二列解碼成功單元數)、或者第二編碼單元中被成功解碼的位元的數目作為此第二數值。或者,記憶體管理電路702也可以根據第二行解碼成功單元數與第二列解碼成功單元數來執行一邏輯運算以決定此第二數值。此外,記憶體管理電路702也可以將第二解碼成功單元數輸入至一查找表並且將此查找表的輸出作為第二數值。關於如何決定第二數值可參考上述關於第一數值的說明,故在此便不贅述。
在獲得第一解碼資訊與第二解碼資訊之後,記憶體管理電路702會根據此第一解碼資訊與此第二解碼資訊來估測另一讀取電壓準位(以下亦稱為第三讀取電壓準位)。在本範例實施例中,第三讀取電壓準位可以視為是對於第一區域所估測出來的一個最佳讀取電壓準位。例如,此最佳讀取電壓準位可以是指根據過去的歷史記錄所評估出來,可以用來讀取出解碼成功率最高的編碼單元的讀取電壓準位。例如,記憶體管理電路702可以比較第一數值與第二數值並且根據比較結果來決定第三讀取電壓準位。例如,若第一數值大於第二數值,記憶體管理電路702可以根據第一讀取電壓準位來決定第三讀取電壓準位。例如,在本範例實施例中,若第一數值大於第二數值,記憶體管理電路702可以直接將第一讀取電壓準位設定為第三讀取電壓準位。或者,在另一範 例實施例中,若第一數值大於第二數值,記憶體管理電路702也可以根據第一讀取電壓準位來執行一邏輯運算而決定第三讀取電壓準位,本發明不加以限制。此外,若第一數值小於第二數值,記憶體管理電路702可以根據第二讀取電壓準位來決定第三讀取電壓準位。例如,在本範例實施例中,若第一數值小於第二數值,記憶體管理電路702可以直接將第二讀取電壓準位設定為第三讀取電壓準位。或者,在另一範例實施例中,若第一數值小於第二數值,記憶體管理電路702也可以根據第二讀取電壓準位來執行一邏輯運算而決定第三讀取電壓準位,本發明不加以限制。
值得一提的是,雖然上述範例實施例是以兩次連續的讀取操作與解碼操作來作為範例進行說明,然而,在另一範例實施例中,上述範例實施例中提及的兩次讀取操作與解碼操作也可以是不連續的。更多的讀取操作與解碼操作可以被用來針對同一個區域所儲存的資料進行處理。例如,在圖9的一範例實施例中,多個可以被使用的讀取電壓準位Vread-0~Vread-3可能會被記錄在一個查找表中。根據此查找表,讀取電壓準位Vread-0可以先被用來讀取上述第一區域的資料。爾後,若對於讀取出來的編碼單元解碼失敗,則根據此查找表,讀取電壓準位Vread-1可以被接續用來讀取上述第一區域的資料。爾後,若對於讀取出來的編碼單元還是解碼失敗,則讀取電壓準位Vread-2可以被接續用來讀取上述第一區域的資料並且對應的解碼操作會被執行。爾後,若對於讀取出來的編碼單元還是解碼失敗,則讀取電壓準位Vread-3可以接續 被用來讀取上述第一區域的資料並且對應的解碼操作會被執行。上述範例實施例中提及的第一讀取電壓準位可以是圖9中繪示的讀取電壓準位Vread-0~Vread-2中的任一者,而上述範例實施例中提及的第二讀取電壓準位則可以是在第一讀取電壓準位之後施予的任一讀取電壓準位。例如,若第一讀取電壓準位是讀取電壓準位Vread-0,則第二讀取電壓準位可以是讀取電壓準位Vread-1~Vread-3中的任一者,以此類推。此外,讀取電壓準位Vread-0~Vread-3被使用的順序也可以被調整,本發明不加以限制。例如,在另一範例實施例中,讀取電壓準位Vread-0~Vread-3也可以是依照電壓值由小至大依序被使用。
在一範例實施例中,對於可複寫式非揮發性記憶體模組406中的同一個區域,若查照表中所記載的讀取電壓準位都被使用過並且所讀取出來的編碼單元都無法被成功解碼,則上述根據多個使用過的讀取電壓準位來決定第三讀取電壓準位的操作才會被執行。然而,在另一範例實施例中,亦可以設定為,在嘗試使用過某些讀取電壓準位或改變讀取電壓準位的次數超過一預設次數後即可執行上述根據多個使用過的讀取電壓準位來決定第三讀取電壓準位的操作,本發明不加以限制。此外,雖然上述範例實施例皆是迭代解碼程序作為第一解碼程序與第二解碼程序的範例,然而,在另一範例實施例中,第一解碼程序及/或第二解碼程序也可以是屬於非迭代解碼程序,本發明不加以限制。
在一範例實施例中,在使用某一個讀取電壓準位來讀取 編碼單元並且執行對應的解碼程序的過程中,部分成功被解碼的位置上的位元值可以被視為是正確的並且被記錄下來。例如,若某一個行或列被解碼成功,則這個行或列中各個位置的位元值可以被記錄下來。在下一次的解碼程序中,被記錄下來的位元值即可以作為額外的解碼訊息。例如,在一範例實施例中,假設對於某一個編碼單元的解碼是失敗的但解碼結果表示編碼單元中的位元b11是正確的,則位元b11的位元值會被記錄下來。在調整讀取電壓準位來讀取同一筆資料並且對讀取出的資料執行的下一次解碼中,所讀取出的編碼單元中的位元b11會被直接更正為先前被記錄的位元值。或者,在下一次的解碼程序中,被記錄的位元值可以被跳過,從而減少每一次獲得的編碼單元中需要被檢查的位元之數目。藉此,在根據不同的讀取電壓準位執行對應的解碼程序的過程中,編碼單元中部分的位元可逐漸地被更正,從而增加解碼成功率。此外,本發明並不限制可以傳遞下去的額外的解碼訊息之種類,任何可以傳遞給下一次的解碼程序使用的解碼訊息都可以被記錄下來並且在下一次的解碼程序中被採用。
在決定第三讀取電壓準位之後,記憶體管理電路702可以根據此第三讀取電壓準位來執行與可複寫式非揮發性記憶體模組406有關的至少一預設操作。此預設操作可以是用來優化可複寫式非揮發性記憶體模組406對於資料的儲存、讀取或者對於實體單元的管理。
在一範例實施例中,錯誤檢查與校正電路708可以執行 硬位元模式解碼與軟位元模式解碼。以SLC型快閃記憶體為例,在硬位元模式解碼中,一個讀取電壓準位會被施予至一個記憶胞。根據此記憶胞是否反應於此讀取電壓準位而被導通,可複寫式非揮發性記憶體模組406會回傳一個位元(亦稱為驗證位元)。爾後,錯誤檢查與校正電路708會根據此驗證位元來進行解碼。在硬位元模式解碼中,所獲得的驗證位元亦稱為硬位元。同樣以SLC型快閃記憶體為例,在軟位元模式解碼中,多個讀取電壓準位會被施予至一個記憶胞。根據此記憶胞反應於此些讀取電壓準位的導通狀態,可複寫式非揮發性記憶體模組406會回傳多個驗證位元。爾後,錯誤檢查與校正電路708會根據此些驗證位元來進行解碼。在軟位元模式解碼中,所獲得的驗證位元亦稱為軟位元。在硬位元模式解碼的迭代解碼程序中,一個記憶胞的解碼初始值是根據對應於此記憶胞的一個驗證位元而可被分為兩個數值。例如,若驗證位元是“1”,則對應的記憶胞的解碼初始值可以設為“-n”;若驗證位元是“0”,則對應的記憶胞的解碼初始值可以設為“-n”。硬位元模式解碼的迭代解碼程序是基於此兩種數值來執行。然而,在軟位元模式解碼的迭代解碼程序中,一個記憶胞的解碼初始值則是根據對應於此記憶胞的多個驗證位元來決定。
在一範例實施例中,在上述查找表中的多個讀取電壓準位都被使用完畢之前,錯誤檢查與校正電路708所執行的解碼都是屬於硬位元模式解碼。若上述查找表中的多個讀取電壓準位都被使用完畢且仍然無法對從同一個區域讀取出來的資料成功解 碼,則錯誤檢查與校正電路708可能會切換到使用軟位元模式解碼。在軟位元模式解碼中,記憶體管理電路702會指示根據第三讀取電壓準位來讀取上述第一區域以獲得一解碼單元(以下亦稱為第三解碼單元)。此外,記憶體管理電路702還會指示根據此第三讀取電壓準位來決定電壓值位於此第三讀取電壓準位的電壓值附近的多個讀取電壓準位(以下亦稱為第四讀取電壓準位)並且根據此些第四讀取電壓準位來讀取此第一區域,以獲得多個軟位元。此些第四讀取電壓準位可以包含或不包含第三讀取電壓準位。每一個軟位元可以提供第三解碼單元中的一個位元的額外解碼訊息。錯誤檢查與校正電路708可以對第三解碼單元執行對應的解碼程序(亦稱為第三解碼程序)。
圖11是根據本發明的一範例實施例所繪示的讀取多個軟位元的示意圖。
請參照圖11,假設所決定的第四讀取電壓準位包括讀取電壓準位V1~V5,則在軟位元模式解碼中,讀取電壓準位V1~V5會被用來讀取上述第一區域中屬於分佈1110與1120的記憶胞。反應於讀取電壓準位V1~V5,多個軟位元b1~b5會被獲得。例如,若某一個記憶胞的臨界電壓位於電壓區間1101,則所讀取到的軟位元b1~b5會是“11111”;若某一個記憶胞的臨界電壓位於電壓區間1102,則所讀取到的軟位元b1~b5會是“01111”;若某一個記憶胞的臨界電壓位於電壓區間1103,則所讀取到的軟位元b1~b5會是“00111”;若某一個記憶胞的臨界電壓位於電壓區間1104,則所 讀取到的軟位元b1~b5會是“00011”;若某一個記憶胞的臨界電壓位於電壓區間1105,則所讀取到的軟位元b1~b5會是“00001”;若某一個記憶胞的臨界電壓位於電壓區間1106,則所讀取到的軟位元b1~b5會是“00000”。在軟位元模式解碼中,所讀取到的軟位元b1~b5會被用來對第三解碼單元進行對應的迭代解碼。例如,對應於每一個電壓區間,記憶胞屬於分佈1110的機率與屬於分佈1120的機率可以事先被計算出來。根據這兩個機率可以計算出對數可能性比值(Log Likelihood Ratio,LLR)。此對數可能性比值可用來決定解碼初始值的絕對值的大小。例如,各個電壓區間所對應的解碼初始值可以事先被計算出來並且儲存在一個查找表中。所獲得的軟位元b1~b5可以被輸入此查找表中,並且對應的解碼初始值可被獲得。爾後,錯誤檢查與校正電路708可根據所獲得的解碼初始值來執行後續的解碼。
換言之,相對於硬位元模式解碼,軟位元模式解碼所使用的解碼訊息(例如,驗證位元)較多。基於所使用的解碼訊息增多,軟位元模式解碼的解碼成功率通常會高於硬位元模式解碼的解碼成功率。因此,軟位元模式解碼有可能在硬位元模式解碼失敗的情況下成功地完成解碼。
在一範例實施例中,記憶體管理電路702可以根據第三讀取電壓準位來決定上述第一區域中的多個記憶胞的損耗程度或此些記憶胞的電壓分布狀態。例如,在圖9的範例實施例中,對於屬於分佈911與912的記憶胞來說,利用讀取電壓準位Vread-0 來讀取此些記憶胞將可以讀取到錯誤率較低的資料;而在發生性能衰退之後,對於屬於分佈911與912的記憶胞來說,利用讀取電壓準位Vread-3來讀取此些記憶胞則可以讀取到錯誤率較低的資料。因此,根據所決定的第三讀取電壓準位,記憶體管理電路702可以也可以透過查表等方式來獲得此些記憶胞當前的損耗程度或此些記憶胞當前的電壓分布狀態。例如,圖9中的讀取電壓準位Vread-0~Vread-3可以分別對應至一個損耗程度或電壓分布狀態。值得一提的是,在一範例實施例中,所述損耗程度與記憶胞的使用狀況或當前操作環境有關。例如,若記憶胞的讀取次數、記憶胞的寫入次數、記憶胞的抹除次數增加,則記憶胞的損耗程度可能會同步增加。例如,若資料存放在記憶胞中的時間區間增加,則記憶胞的損耗程度可能會同步增加。例如,若當前可複寫式非揮發性記憶體模組406的操作環境之溫度或濕度太高,則記憶胞的損耗程度也可能會同步增加。此外,所述損耗程度也可能會與儲存在記憶胞中的資料的正確性/錯誤率有關。例如,記憶胞的損耗程度越高,則儲存在記憶胞中的資料的正確性越低或者儲存在記憶胞中的資料的錯誤率越高。
在一範例實施例中,記憶體管理電路702可以根據第三讀取電壓準位來決定對應於上述第一區域的一預設程式化電壓。例如,若可複寫式非揮發性記憶體模組406是使用一增量階躍脈衝抹除(Incremental Step Pulse Program,ISPP)模型來程式化記憶胞,則記憶體管理電路702可以根據第三讀取電壓準位來指示可 複寫式非揮發性記憶體模組406調整此增量階躍脈衝模型中的一初始程式化電壓。此初始程式化電壓是此增量階躍脈衝模型中最先被施予至上述第一區域中的記憶胞的程式化電壓。此外,任何與調整此初始程式化電壓有關及/或可以達到類似效果的程式化參數或抹除參數也可以被調整。
值得一提的是,本發明並不將可以根據第三讀取電壓準位來執行的預設操作限定於上述。例如,在另一範例實施例中,任何可以根據記憶胞的性能衰退、損耗程度、或電壓分布狀態而對應調整的參數或記憶體設定都可以反應於第三讀取電壓準位而被適當地調整,從而改善對於可複寫式非揮發性記憶體模組406的管理能力。例如,在一範例實施例中,根據第三讀取電壓準位,上述第一區域所屬的實體單元亦可以被標記為損壞等等。此外,在一範例實施例中,根據第三讀取電壓準位,可複寫式非揮發性記憶體模組406的使用壽命等任何有利於可複寫式非揮發性記憶體模組406之管理的資訊也可以被獲得。
需說明的是,雖然上述範例實施例皆是以一個記憶胞儲存一個位元作為範例進行說明,然而,在另一範例實施例中,上述讀取編碼單元的操作、上述解碼編碼單元的操作以及估測讀取電壓準位的操作亦可以適用於一個記憶胞可以儲存多個位元的使用情境。例如,所估測出的讀取電壓準位也可能是用以讀取操作在MLC模式或TLC模式下的記憶胞所儲存的資料。
圖12是根據本發明的一範例實施例所繪示的讀取電壓準 位估測方法的流程圖。
請參照圖12,在步驟S1201中,根據第一讀取電壓準位,所述可複寫式非揮發性記憶體模組中的第一區域會被讀取以獲得第一編碼單元,其中所述第一編碼單元屬於區塊碼。在步驟S1202中,對於所述第一編碼單元的第一解碼程序會被執行並且第一解碼資訊會被記錄。在步驟S1203中,根據第二讀取電壓準位,所述第一區域會被讀取以獲得第二編碼單元,其中所述第二編碼單元屬於所述區塊碼。在步驟S1204中,對於所述第二編碼單元的第二解碼程序會被執行並且第二解碼資訊會被記錄。在步驟S1205中,根據所述第一解碼資訊與所述第二解碼資訊,第三讀取電壓準位會被估測並被獲得。在步驟S1206中,根據所述第三讀取電壓準位,與所述可複寫式非揮發性記憶體模組有關的至少一預設操作可被執行。
然而,圖12中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖12中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖12的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,在利用不同的讀取電壓準位來讀取記憶體並且嘗試對所獲得的資料進行解碼之後,對應於不同編碼單元的解碼資訊會被記錄下來。爾後,此些解碼資訊即可用來作為估測一個適當的讀取電壓準位之依據,並且至少一個預設操作可以對應地被執行。藉此,對於使用區塊碼之可複寫式非揮發性記憶體模 組的管理能力可被提升。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S1201~S1206‧‧‧步驟

Claims (36)

  1. 一種讀取電壓準位估測方法,用於一可複寫式非揮發性記憶體模組,該讀取電壓準位估測方法包括:根據一第一讀取電壓準位來讀取該可複寫式非揮發性記憶體模組中的一第一區域,以獲得一第一編碼單元,其中該第一編碼單元屬於一區塊碼;對該第一編碼單元執行一第一解碼程序並且記錄一第一解碼資訊;根據一第二讀取電壓準位來讀取該第一區域,以獲得一第二編碼單元,其中該第二編碼單元屬於該區塊碼;對該第二編碼單元執行一第二解碼程序並且記錄一第二解碼資訊;以及根據該第一解碼資訊與該第二解碼資訊來估測並獲得一第三讀取電壓準位。
  2. 如申請專利範圍第1項所述的讀取電壓準位估測方法,其中該區塊碼由多個子編碼單元組成,該些子編碼單元中的一第一位元是由多個編碼程序決定。
  3. 如申請專利範圍第2項所述的讀取電壓準位估測方法,其中該些編碼程序具有不同的編碼方向。
  4. 如申請專利範圍第1項所述的讀取電壓準位估測方法,其中該第一解碼資訊包括一第一數值,該第二解碼資訊包括一第二數值, 其中根據該第一解碼資訊與該第二解碼資訊來估測並獲得該第三讀取電壓準位的步驟包括:比較該第一數值與該第二數值並根據一比較結果來決定該第三讀取電壓準位。
  5. 如申請專利範圍第4項所述的讀取電壓準位估測方法,其中該第一數值與該第一解碼程序的一第一解碼結果有關,該第二數值與該第二解碼程序的一第二解碼結果有關。
  6. 如申請專利範圍第5項所述的讀取電壓準位估測方法,其中該第一數值是正相關於該第一解碼程序的一第一解碼成功單元數,該第二數值是正相關於該第二解碼程序的一第二解碼成功單元數。
  7. 如申請專利範圍第6項所述的讀取電壓準位估測方法,更包括:根據該第一解碼結果獲得一第一行解碼成功單元數與一第一列解碼成功單元數;根據該第一行解碼成功單元數與該第一列解碼成功單元數來決定該第一數值;根據該第二解碼結果獲得一第二行解碼成功單元數與一第二列解碼成功單元數;以及根據該第二行解碼成功單元數與該第二列解碼成功單元數來決定該第二數值。
  8. 如申請專利範圍第1項所述的讀取電壓準位估測方法,其 中根據該第一解碼資訊與該第二解碼資訊來估測並獲得該第三讀取電壓準位的步驟包括:將該第一讀取電壓準位與該第二讀取電壓準位的其中之一決定為該第三讀取電壓準位。
  9. 如申請專利範圍第1項所述的讀取電壓準位估測方法,更包括:判斷該第一解碼程序是否失敗,其中根據該第二讀取電壓準位來讀取該第一區域的步驟是在判定該第一解碼程序失敗之後執行。
  10. 如申請專利範圍第1項所述的讀取電壓準位估測方法,更包括:根據該第三讀取電壓準位來執行與該可複寫式非揮發性記憶體模組有關的一預設操作,其中該預設操作包括以下操作的至少其中之一:讀取該第一區域以獲得對應於一第三解碼單元的多個軟位元並根據該些軟位元來對該第三解碼單元執行一迭代解碼;決定該第一區域中的多個記憶胞的一損耗程度或該些記憶胞的一電壓分布狀態;以及決定對應於該第一區域的一預設程式化電壓。
  11. 如申請專利範圍第1項所述的讀取電壓準位估測方法,更包括:根據該第三讀取電壓準位來讀取該第一區域,以獲得一第三 編碼單元;以及對該第三編碼單元執行一第三解碼程序。
  12. 如申請專利範圍第1項所述的讀取電壓準位估測方法,其中該第一解碼程序與該第二解碼程序皆為一硬位元模式解碼。
  13. 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以發送一第一讀取指令序列,其中該第一讀取指令序列用以指示根據一第一讀取電壓準位來讀取該可複寫式非揮發性記憶體模組中的一第一區域,以獲得一第一編碼單元,其中該第一編碼單元屬於一區塊碼,其中該記憶體控制電路單元更用以對該第一編碼單元執行一第一解碼程序並且記錄一第一解碼資訊,其中該記憶體控制電路單元更用以發送一第二讀取指令序列,其中該第二讀取指令序列用以指示根據一第二讀取電壓準位來讀取該第一區域,以獲得一第二編碼單元,其中該第二編碼單元屬於該區塊碼,其中該記憶體控制電路單元更用以對該第二編碼單元執行一第二解碼程序並且記錄一第二解碼資訊,其中該記憶體控制電路單元更用以根據該第一解碼資訊與該 第二解碼資訊來估測並獲得一第三讀取電壓準位。
  14. 如申請專利範圍第13項所述的記憶體儲存裝置,其中該區塊碼由多個子編碼單元組成,該些子編碼單元中的一第一位元是由多個編碼程序決定。
  15. 如申請專利範圍第14項所述的記憶體儲存裝置,其中該些編碼程序具有不同的編碼方向。
  16. 如申請專利範圍第13項所述的記憶體儲存裝置,其中該第一解碼資訊包括一第一數值,該第二解碼資訊包括一第二數值,其中該記憶體控制電路單元根據該第一解碼資訊與該第二解碼資訊來估測並獲得該第三讀取電壓準位的操作包括:比較該第一數值與該第二數值並根據一比較結果來決定該第三讀取電壓準位。
  17. 如申請專利範圍第16項所述的記憶體儲存裝置,其中該第一數值與該第一解碼程序的一第一解碼結果有關,該第二數值與該第二解碼程序的一第二解碼結果有關。
  18. 如申請專利範圍第17項所述的記憶體儲存裝置,其中該第一數值是正相關於該第一解碼程序的一第一解碼成功單元數,該第二數值是正相關於該第二解碼程序的一第二解碼成功單元數。
  19. 如申請專利範圍第18項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該第一解碼結果獲得一第一行解碼成功單元數與一第一列解碼成功單元數, 其中該記憶體控制電路單元更用以根據該第一行解碼成功單元數與該第一列解碼成功單元數來決定該第一數值,其中該記憶體控制電路單元更用以根據該第二解碼結果獲得一第二行解碼成功單元數與一第二列解碼成功單元數,其中該記憶體控制電路單元更用以根據該第二行解碼成功單元數與該第二列解碼成功單元數來決定該第二數值。
  20. 如申請專利範圍第13項所述的記憶體儲存裝置,其中該記憶體控制電路單元根據該第一解碼資訊與該第二解碼資訊來估測並獲得該第三讀取電壓準位的操作包括:將該第一讀取電壓準位與該第二讀取電壓準位的其中之一決定為該第三讀取電壓準位。
  21. 如申請專利範圍第13項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以判斷該第一解碼程序是否失敗,其中該記憶體控制電路單元發送該第二讀取指令序列的操作是在判定該第一解碼程序失敗之後執行。
  22. 如申請專利範圍第13項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該第三讀取電壓準位來執行與該可複寫式非揮發性記憶體模組有關的一預設操作,其中該預設操作包括以下操作的至少其中之一:指示讀取該第一區域以獲得對應於一第三解碼單元的多個軟位元並根據該些軟位元來對該第三解碼單元執行一迭代解碼;決定該第一區域中的多個記憶胞的一損耗程度或該些記憶胞 的一電壓分布狀態;以及決定對應於該第一區域的一預設程式化電壓。
  23. 如申請專利範圍第13項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以指示根據該第三讀取電壓準位來讀取該第一區域,以獲得一第三編碼單元,其中該記憶體控制電路單元更用以對該第三編碼單元執行一第三解碼程序。
  24. 如申請專利範圍第13項所述的記憶體儲存裝置,其中該第一解碼程序與該第二解碼程序皆為一硬位元模式解碼。
  25. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一錯誤檢查與校正電路;以及一記憶體管理電路,耦接至該主機介面、該記憶體介面及該錯誤檢查與校正電路,其中該記憶體管理電路用以發送一第一讀取指令序列,其中該第一讀取指令序列用以指示根據一第一讀取電壓準位來讀取該可複寫式非揮發性記憶體模組中的一第一區域,以獲得一第一編碼單元,其中該第一編碼單元屬於一區塊碼,其中該錯誤檢查與校正電路用以對該第一編碼單元執行一第一解碼程序,並且該記憶體管理電路更用以記錄一第一解碼資訊, 其中該記憶體管理電路更用以發送一第二讀取指令序列,其中該第二讀取指令序列用以指示根據一第二讀取電壓準位來讀取該第一區域,以獲得一第二編碼單元,其中該第二編碼單元屬於該區塊碼,其中該錯誤檢查與校正電路更用以對該第二編碼單元執行一第二解碼程序,並且該記憶體管理電路更用以記錄一第二解碼資訊,其中該記憶體管理電路更用以根據該第一解碼資訊與該第二解碼資訊來估測並獲得一第三讀取電壓準位。
  26. 如申請專利範圍第25項所述的記憶體控制電路單元,其中該區塊碼由多個子編碼單元組成,該些子編碼單元中的一第一位元是由多個編碼程序決定。
  27. 如申請專利範圍第26項所述的記憶體控制電路單元,其中該些編碼程序具有不同的編碼方向。
  28. 如申請專利範圍第25項所述的記憶體控制電路單元,其中該第一解碼資訊包括一第一數值,該第二解碼資訊包括一第二數值,其中該記憶體管理電路根據該第一解碼資訊與該第二解碼資訊來估測並獲得該第三讀取電壓準位的操作包括:比較該第一數值與該第二數值並根據一比較結果來決定該第三讀取電壓準位。
  29. 如申請專利範圍第28項所述的記憶體控制電路單元,其 中該第一數值與該第一解碼程序的一第一解碼結果有關,該第二數值與該第二解碼程序的一第二解碼結果有關。
  30. 如申請專利範圍第29項所述的記憶體控制電路單元,其中該第一數值是正相關於該第一解碼程序的一第一解碼成功單元數,該第二數值是正相關於該第二解碼程序的一第二解碼成功單元數。
  31. 如申請專利範圍第30項所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該第一解碼結果獲得一第一行解碼成功單元數與一第一列解碼成功單元數,其中該記憶體管理電路更用以根據該第一行解碼成功單元數與該第一列解碼成功單元數來決定該第一數值,其中該記憶體管理電路更用以根據該第二解碼結果獲得一第二行解碼成功單元數與一第二列解碼成功單元數,其中該記憶體管理電路更用以根據該第二行解碼成功單元數與該第二列解碼成功單元數來決定該第二數值。
  32. 如申請專利範圍第25項所述的記憶體控制電路單元,其中該記憶體管理電路根據該第一解碼資訊與該第二解碼資訊來估測並獲得該第三讀取電壓準位的操作包括:將該第一讀取電壓準位與該第二讀取電壓準位的其中之一決定為該第三讀取電壓準位。
  33. 如申請專利範圍第25項所述的記憶體控制電路單元,其中該記憶體管理電路更用以判斷該第一解碼程序是否失敗, 其中該記憶體管理電路發送該第二讀取指令序列的操作是在判定該第一解碼程序失敗之後執行。
  34. 如申請專利範圍第25項所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該第三讀取電壓準位來執行與該可複寫式非揮發性記憶體模組有關的一預設操作,其中該預設操作包括以下操作的至少其中之一:指示讀取該第一區域以獲得對應於一第三解碼單元的多個軟位元並且該錯誤檢查與校正電路更用以根據該些軟位元來對該第三解碼單元執行一迭代解碼;決定該第一區域中的多個記憶胞的一損耗程度或該些記憶胞的一電壓分布狀態;以及決定對應於該第一區域的一預設程式化電壓。
  35. 如申請專利範圍第25項所述的記憶體控制電路單元,其中該記憶體管理電路更用以指示根據該第三讀取電壓準位來讀取該第一區域,以獲得一第三編碼單元,其中該錯誤檢查與校正電路更用以對該第三編碼單元執行一第三解碼程序。
  36. 如申請專利範圍第25項所述的記憶體控制電路單元,其中該第一解碼程序與該第二解碼程序皆為一硬位元模式解碼。
TW104111851A 2015-04-14 2015-04-14 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元 TWI582779B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW104111851A TWI582779B (zh) 2015-04-14 2015-04-14 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元
US14/745,472 US9639419B2 (en) 2015-04-14 2015-06-22 Read voltage level estimating method, memory storage device and memory control circuit unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104111851A TWI582779B (zh) 2015-04-14 2015-04-14 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元

Publications (2)

Publication Number Publication Date
TW201637019A true TW201637019A (zh) 2016-10-16
TWI582779B TWI582779B (zh) 2017-05-11

Family

ID=57129881

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104111851A TWI582779B (zh) 2015-04-14 2015-04-14 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元

Country Status (2)

Country Link
US (1) US9639419B2 (zh)
TW (1) TWI582779B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI614756B (zh) * 2017-02-08 2018-02-11 群聯電子股份有限公司 讀取電壓追蹤方法、記憶體儲存裝置及記憶體控制電路單元
CN108428467A (zh) * 2017-02-15 2018-08-21 群联电子股份有限公司 读取电压追踪方法、存储器储存装置及控制电路单元
CN109901784A (zh) * 2017-12-08 2019-06-18 群联电子股份有限公司 数据存取方法、存储器控制电路单元以及存储器储存装置
TWI668695B (zh) * 2018-07-24 2019-08-11 群聯電子股份有限公司 電壓調整方法、記憶體控制電路單元以及記憶體儲存裝置
CN111435604A (zh) * 2019-01-15 2020-07-21 群联电子股份有限公司 解码方法、存储器控制电路单元以及存储器存储装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102381218B1 (ko) * 2015-09-25 2022-04-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI575532B (zh) * 2016-03-02 2017-03-21 群聯電子股份有限公司 解碼方法、記憶體控制電路單元及記憶體儲存裝置
TWI592869B (zh) * 2016-04-22 2017-07-21 大心電子(英屬維京群島)股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI628543B (zh) * 2017-09-07 2018-07-01 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US10242747B1 (en) * 2017-12-28 2019-03-26 Micron Technology, Inc. Charge loss failure mitigation
US10636495B2 (en) * 2018-06-12 2020-04-28 Western Digital Technologies, Inc. Adjustable read retry order based on decoding success trend
TWI725368B (zh) * 2018-12-25 2021-04-21 群聯電子股份有限公司 解碼方法、記憶體控制電路單元以及記憶體儲存裝置
TWI691961B (zh) * 2019-01-11 2020-04-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
TWI722867B (zh) * 2020-04-14 2021-03-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101486980B1 (ko) * 2008-10-27 2015-01-30 삼성전자주식회사 불휘발성 메모리의 문턱 전압 산포의 분석 방법
KR101462605B1 (ko) * 2008-10-29 2014-11-19 삼성전자주식회사 플래시 메모리 장치 및 이의 테스트 방법
US8737136B2 (en) * 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
US9047210B2 (en) * 2011-09-15 2015-06-02 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
KR101939234B1 (ko) * 2012-07-23 2019-01-16 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 상기 메모리 장치의 독출 전압의 제어 방법
US9286986B2 (en) * 2012-08-13 2016-03-15 Phison Electronics Corp. Data writing method, and memory control circuit unit and memory storage apparatus using the same
KR102131802B1 (ko) * 2013-03-15 2020-07-08 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법, 비휘발성 메모리 장치, 및 메모리 시스템의 구동 방법
US9697905B2 (en) * 2013-05-31 2017-07-04 Sandisk Technologies Llc Updating read voltages using syndrome weight comparisons
TWI521513B (zh) * 2013-06-28 2016-02-11 群聯電子股份有限公司 讀取電壓設定方法、控制電路與記憶體儲存裝置
US20150085571A1 (en) * 2013-09-24 2015-03-26 Sandisk Technologies Inc. Updating read voltages
TWI508082B (zh) * 2013-09-30 2015-11-11 Phison Electronics Corp 解碼方法、記憶體儲存裝置與記憶體控制電路單元

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI614756B (zh) * 2017-02-08 2018-02-11 群聯電子股份有限公司 讀取電壓追蹤方法、記憶體儲存裝置及記憶體控制電路單元
CN108428467A (zh) * 2017-02-15 2018-08-21 群联电子股份有限公司 读取电压追踪方法、存储器储存装置及控制电路单元
CN108428467B (zh) * 2017-02-15 2021-01-12 群联电子股份有限公司 读取电压追踪方法、存储器储存装置及控制电路单元
CN109901784A (zh) * 2017-12-08 2019-06-18 群联电子股份有限公司 数据存取方法、存储器控制电路单元以及存储器储存装置
TWI668695B (zh) * 2018-07-24 2019-08-11 群聯電子股份有限公司 電壓調整方法、記憶體控制電路單元以及記憶體儲存裝置
CN111435604A (zh) * 2019-01-15 2020-07-21 群联电子股份有限公司 解码方法、存储器控制电路单元以及存储器存储装置

Also Published As

Publication number Publication date
US20160306693A1 (en) 2016-10-20
TWI582779B (zh) 2017-05-11
US9639419B2 (en) 2017-05-02

Similar Documents

Publication Publication Date Title
TWI582779B (zh) 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元
US10892026B2 (en) Memory management method, memory storage device and memory control circuit unit
US9891991B2 (en) Decoding method, memory storage device and memory control circuit unit
US20190252035A1 (en) Decoding method, memory storage device and memory control circuit unit
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
TWI628660B (zh) 解碼方法、記憶體控制電路單元以及記憶體儲存裝置
TWI668695B (zh) 電壓調整方法、記憶體控制電路單元以及記憶體儲存裝置
CN106297883B (zh) 解码方法、存储器存储装置及存储器控制电路单元
US10685711B1 (en) Decoding method, memory controlling circuit unit and memory storage device
TW201928975A (zh) 位元標記方法、記憶體控制電路單元以及記憶體儲存裝置
US10324787B2 (en) Decoding method, memory storage device and memory control circuit unit
US10447314B2 (en) Decoding method, memory storage device and memory control circuit unit
TWI529530B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI691962B (zh) 解碼方法、記憶體控制電路單元與記憶體儲存裝置
US10776053B2 (en) Memory control method, memory storage device and memory control circuit unit
US11190217B2 (en) Data writing method, memory controlling circuit unit and memory storage device
US11726709B2 (en) Memory control method, memory storage device and memory control circuit unit
CN111258791B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
TWI742509B (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
TWI681393B (zh) 解碼方法、記憶體控制電路單元以及記憶體儲存裝置
TWI705449B (zh) 電壓識別方法、記憶體控制電路單元以及記憶體儲存裝置
CN111435604B (zh) 解码方法、存储器控制电路单元以及存储器存储装置