TWI584304B - 解碼方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
解碼方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI584304B TWI584304B TW105115957A TW105115957A TWI584304B TW I584304 B TWI584304 B TW I584304B TW 105115957 A TW105115957 A TW 105115957A TW 105115957 A TW105115957 A TW 105115957A TW I584304 B TWI584304 B TW I584304B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- voltage level
- voltage
- bit information
- soft bit
- Prior art date
Links
Classifications
-
- 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/1072—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 in multilevel memories
-
- 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
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- 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
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50004—Marginal testing, e.g. race, voltage or current testing of threshold voltage
-
- 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
- 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/0409—Online test
-
- 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
-
- 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
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C2029/5004—Voltage
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)
Description
本發明是有關於一種記憶體技術,且特別是有關於一種解碼方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,在將資料從記憶體中讀取出來之後,此資料可能會被解碼以驗證資料的正確性。藉此,若此資料中存在錯誤,透過解碼程序亦可以更正其中的錯誤。在記憶體裝置出廠時,一個預設讀取電壓準位會被配置。此預設讀取電壓準位是用來讀取此記憶體裝置所儲存的資料。然而,隨著記憶體裝置的使用時間及/或損耗程度增加,藉由此預設讀取電壓準位讀取的資料可能會包含越來越多錯誤,甚至超過解碼程序的錯誤更正能力。因此,如何藉由調整預設讀取電壓準位來提升所讀取之資料的正確性及/或記憶體的解碼能力,實為本領域技術人員所致力研究的課題之一。
本發明提供一種解碼方法、記憶體儲存裝置及記憶體控制電路單元,可提升解碼效率。
本發明的一範例實施例提供一種解碼方法,其用於包括多個記憶胞的可複寫式非揮發性記憶體模組,所述解碼方法包括:基於預設硬決策電壓準位讀取所述記憶胞中的多個第一記憶胞以獲得硬位元資訊;對所述硬位元資訊執行硬解碼操作;若所述硬解碼操作失敗,基於多個預設軟決策電壓準位讀取所述第一記憶胞以獲得軟位元資訊;對所述軟位元資訊執行軟解碼操作;若所述軟解碼操作失敗,基於多個第一測試電壓準位讀取所述第一記憶胞以獲得第一軟位元資訊並基於多個第二測試電壓準位讀取所述第一記憶胞以獲得第二軟位元資訊;根據所述第一軟位元資訊獲得第一評估參數並根據所述第二軟位元資訊獲得第二評估參數,其中所述第一評估參數對應於所述第一記憶胞中符合第一狀態條件之記憶胞的第一總數,其中所述第二評估參數對應於所述第一記憶胞中符合第二狀態條件之記憶胞的第二總數;以及根據所述第一評估參數與所述第二評估參數更新所述預設硬決策電壓準位。
在本發明的一範例實施例中,根據所述第一軟位元資訊獲得所述第一評估參數並根據所述第二軟位元資訊獲得所述第二評估參數之步驟包括:根據所述第一軟位元資訊統計所述第一記憶胞中臨界電壓屬於第一轉態區域之記憶胞的總數,其中所述第一轉態區域包含所述第一測試電壓準位中任兩個電壓準位之間的區域;以及根據所述第二軟位元資訊統計所述第一記憶胞中臨界電壓屬於第二轉態區域之記憶胞的總數,其中所述第二轉態區域包含所述第二測試電壓準位中任兩個電壓準位之間的區域。
在本發明的一範例實施例中,根據所述第一軟位元資訊獲得所述第一評估參數並根據所述第二軟位元資訊獲得所述第二評估參數之步驟包括:根據所述第一軟位元資訊統計所述第一記憶胞中臨界電壓屬於第一穩態區域之記憶胞的總數,其中所述第一穩態區域包含所述第一測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外的區域;以及根據所述第二軟位元資訊統計所述第一記憶胞中臨界電壓屬於第二穩態區域之記憶胞的總數,其中所述第二穩態區域包含所述第二測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外的區域。
在本發明的一範例實施例中,所述第一測試電壓準位對應於第一偏移值,所述第二測試電壓準位對應於第二偏移值,所述第一偏移值不同於所述第二偏移值,其中根據所述第一評估參數與所述第二評估參數更新所述預設硬決策電壓準位之步驟包括:根據所述第一總數與所述第二總數之間的數值關係來更新所述預設硬決策電壓準位,其中更新後的所述預設硬決策電壓準位對應於所述第一偏移值與所述第二偏移值的其中之一。
在本發明的一範例實施例中,所述的解碼方法更包括:根據所述第一總數與所述第二總數之間的所述數值關係來更新所述預設軟決策電壓準位,其中更新後的所述預設軟決策電壓準位對應於所述第一偏移值與所述第二偏移值的所述其中之一。
本發明的另一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個記憶胞。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,其中所述記憶體控制電路單元用以發送第一讀取指令序列以指示基於預設硬決策電壓準位讀取所述記憶胞中的多個第一記憶胞以獲得硬位元資訊,其中所述記憶體控制電路單元更用以對所述硬位元資訊執行硬解碼操作,其中若所述硬解碼操作失敗,所述記憶體控制電路單元更用以發送第二讀取指令序列以指示基於多個預設軟決策電壓準位讀取所述第一記憶胞以獲得軟位元資訊,其中所述記憶體控制電路單元更用以對所述軟位元資訊執行軟解碼操作,其中若所述軟解碼操作失敗,所述記憶體控制電路單元更用以發送第一測試指令序列以指示基於多個第一測試電壓準位讀取所述第一記憶胞以獲得第一軟位元資訊並發送第二測試指令序列以指示基於多個第二測試電壓準位讀取所述第一記憶胞以獲得第二軟位元資訊,其中所述記憶體控制電路單元更用以根據所述第一軟位元資訊獲得第一評估參數並根據所述第二軟位元資訊獲得第二評估參數,其中所述第一評估參數對應於所述第一記憶胞中符合第一狀態條件之記憶胞的第一總數,其中所述第二評估參數對應於所述第一記憶胞中符合第二狀態條件之記憶胞的第二總數,其中所述記憶體控制電路單元更用以根據所述第一評估參數與所述第二評估參數更新所述預設硬決策電壓準位。
在本發明的一範例實施例中,所述記憶體控制電路單元根據所述第一軟位元資訊獲得所述第一評估參數並根據所述第二軟位元資訊獲得所述第二評估參數之操作包括:根據所述第一軟位元資訊統計所述第一記憶胞中臨界電壓屬於一第一轉態區域之記憶胞的一總數,其中所述第一轉態區域包含所述第一測試電壓準位中任兩個電壓準位之間的區域;以及根據所述第二軟位元資訊統計所述第一記憶胞中臨界電壓屬於第二轉態區域之記憶胞的總數,其中所述第二轉態區域包含所述第二測試電壓準位中任兩個電壓準位之間的區域。
在本發明的一範例實施例中,所述記憶體控制電路單元根據所述第一軟位元資訊獲得所述第一評估參數並根據所述第二軟位元資訊獲得所述第二評估參數之操作包括:根據所述第一軟位元資訊統計所述第一記憶胞中臨界電壓屬於第一穩態區域之記憶胞的總數,其中所述第一穩態區域包含所述第一測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外的區域;以及根據所述第二軟位元資訊統計所述第一記憶胞中臨界電壓屬於第二穩態區域之記憶胞的總數,其中所述第二穩態區域包含所述第二測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外的區域。
在本發明的一範例實施例中,所述第一測試電壓準位對應於第一偏移值,所述第二測試電壓準位對應於第二偏移值,所述第一偏移值不同於所述第二偏移值,其中所述記憶體控制電路單元根據所述第一評估參數與所述第二評估參數更新所述預設硬決策電壓準位之操作包括:根據所述第一總數與所述第二總數之間的數值關係來更新所述預設硬決策電壓準位,其中更新後的所述預設硬決策電壓準位對應於所述第一偏移值與所述第二偏移值的其中之一。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以根據所述第一總數與所述第二總數之間的所述數值關係來更新所述預設軟決策電壓準位,其中更新後的所述預設軟決策電壓準位對應於所述第一偏移值與所述第二偏移值的所述其中之一。
本發明的另一範例實施例提供一種記憶體控制電路單元,其用於控制包括多個記憶胞的可複寫式非揮發性記憶體模組,其中所述記憶體控制電路單元包括主機介面、記憶體介面、錯誤檢查與校正電路及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面、所述記憶體介面及所述錯誤檢查與校正電路,所述記憶體管理電路用以發送第一讀取指令序列以指示基於預設硬決策電壓準位讀取所述記憶胞中的多個第一記憶胞以獲得硬位元資訊,所述錯誤檢查與校正電路用以對所述硬位元資訊執行硬解碼操作,若所述硬解碼操作失敗,所述記憶體管理電路更用以發送第二讀取指令序列以指示基於多個預設軟決策電壓準位讀取所述第一記憶胞以獲得軟位元資訊,所述錯誤檢查與校正電路更用以對所述軟位元資訊執行軟解碼操作,若所述軟解碼操作失敗,所述記憶體管理電路更用以發送第一測試指令序列以指示基於多個第一測試電壓準位讀取所述第一記憶胞以獲得第一軟位元資訊並發送第二測試指令序列以指示基於多個第二軟決策電壓準位讀取所述第一記憶胞以獲得第二軟位元資訊,其中所述記憶體管理電路更用以根據所述第一軟位元資訊獲得第一評估參數並根據所述第二軟位元資訊獲得第二評估參數,其中所述第一評估參數對應於所述第一記憶胞中符合第一狀態條件之記憶胞的第一總數,其中所述第二評估參數對應於所述第一記憶胞中符合第二狀態條件之記憶胞的第二總數,所述記憶體管理電路更用以根據所述第一評估參數與所述第二評估參數更新所述預設硬決策電壓準位。
在本發明的一範例實施例中,所述記憶體管理電路根據所述第一軟位元資訊獲得所述第一評估參數並根據所述第二軟位元資訊獲得所述第二評估參數之操作包括:根據所述第一軟位元資訊統計所述第一記憶胞中臨界電壓屬於第一轉態區域之記憶胞的總數,其中所述第一轉態區域包含所述第一測試電壓準位中任兩個電壓準位之間的區域;以及根據所述第二軟位元資訊統計所述第一記憶胞中臨界電壓屬於第二轉態區域之記憶胞的總數,其中所述第二轉態區域包含所述第二測試電壓準位中任兩個電壓準位之間的區域。
在本發明的一範例實施例中,所述第一轉態區域是所述第一測試電壓準位中電壓最大之電壓準位與所述第一測試電壓準位中電壓最小之電壓準位之間的區域,所述第二轉態區域是所述第二測試電壓準位中電壓最大之電壓準位與所述第二測試電壓準位中電壓最小之電壓準位之間的區域。
在本發明的一範例實施例中,所述記憶體管理電路根據所述第一軟位元資訊獲得所述第一評估參數並根據所述第二軟位元資訊獲得所述第二評估參數之操作包括:根據所述第一軟位元資訊統計所述第一記憶胞中臨界電壓屬於第一穩態區域之記憶胞的總數,其中所述第一穩態區域包含所述第一測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外的區域;以及根據所述第二軟位元資訊統計所述第一記憶胞中臨界電壓屬於第二穩態區域之記憶胞的總數,其中所述第二穩態區域包含所述第二測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外的區域。
在本發明的一範例實施例中,所述第一穩態區域位於所述第一測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外,其中所述第二穩態區域位於所述第二測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外。
在本發明的一範例實施例中,所述第一測試電壓準位對應於第一偏移值,所述第二測試電壓準位對應於第二偏移值,所述第一偏移值不同於所述第二偏移值,所述記憶體管理電路根據所述第一評估參數與所述第二評估參數更新所述預設硬決策電壓準位之操作包括:根據所述第一總數與所述第二總數之間的數值關係來更新所述預設硬決策電壓準位,其中更新後的所述預設硬決策電壓準位對應於所述第一偏移值與所述第二偏移值的其中之一。
在本發明的一範例實施例中,所述記憶體管理電路更用以根據所述第一總數與所述第二總數之間的所述數值關係來更新所述預設軟決策電壓準位,其中更新後的所述預設軟決策電壓準位對應於所述第一偏移值與所述第二偏移值的所述其中之一。
基於上述,在軟解碼程序失敗之後,至少兩組的測試電壓準位會被用來讀取相同的記憶胞。然後,相應的多個評估參數會被獲得,其中每一個評估參數對應於記憶胞中符合特定狀態條件之記憶胞的總數。根據此些評估參數,預設硬決策電壓準位即可被更新。藉此,可提升解碼效率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中目標資料。
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
請參照圖1與圖2,主機系統11一般包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114皆耦接至系統匯流排(system bus)110。
在本範例實施例中,主機系統11是透過資料傳輸介面114與記憶體儲存裝置10耦接。例如,主機系統11可經由資料傳輸介面114將資料儲存至記憶體儲存裝置10或從記憶體儲存裝置10中目標資料。此外,主機系統11是透過系統匯流排110與I/O裝置12耦接。例如,主機系統11可經由系統匯流排110將輸出訊號傳送至I/O裝置12或從I/O裝置12接收輸入訊號。
在本範例實施例中,處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114可設置在主機系統11的主機板20上。資料傳輸介面114的數目可以是一或多個。透過資料傳輸介面114,主機板20可以經由有線或無線方式耦接至記憶體儲存裝置10。記憶體儲存裝置10可例如是隨身碟201、記憶卡202、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,所提及的主機系統為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。雖然在上述範例實施例中,主機系統是以電腦系統來作說明,然而,圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在另一範例實施例中,主機系統31也可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統,而記憶體儲存裝置30可為其所使用的安全數位(Secure Digital, SD)卡32、小型快閃(Compact Flash, CF)卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded MMC, eMMC)341及/或嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)儲存裝置342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
請參照圖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)標準、SD介面標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、eMCP介面標準、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個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變臨界電壓的操作亦稱為“把資料寫入至記憶胞”或“程式化記憶胞”。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組406中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504、記憶體介面506及錯誤檢查與校正電路508。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路502的操作時,等同於說明記憶體控制電路單元404的操作。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在另一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在另一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的記憶胞或其群組。記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令序列以將資料寫入至可複寫式非揮發性記憶體模組406中。記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令序列以從可複寫式非揮發性記憶體模組406中目標資料。記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組406中抹除。資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組406執行相對應的寫入、讀取及抹除等操作。在一範例實施例中,記憶體管理電路502還可以下達其他類型的指令序列給可複寫式非揮發性記憶體模組406以指示執行相對應的操作。
主機介面504是耦接至記憶體管理電路502並且用以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面504來傳送至記憶體管理電路502。在本範例實施例中,主機介面504是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。具體來說,若記憶體管理電路502要存取可複寫式非揮發性記憶體模組406,記憶體介面506會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示目標資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行垃圾回收程序等等)的相對應的指令序列。這些指令序列例如是由記憶體管理電路502產生並且透過記憶體介面506傳送至可複寫式非揮發性記憶體模組406。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
錯誤檢查與校正電路508是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路508會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code, ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中目標資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路508會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。
在本範例實施例中,錯誤檢查與校正電路508是使用低密度奇偶檢查碼(low density parity code,LDPC)來執行資料的編碼與解碼。然而,在另一範例實施例中,錯誤檢查與校正電路508也可以是使用BCH碼、迴旋碼(convolutional code)或渦輪碼(turbo code)等各種碼來執行資料的編碼與解碼。對於本領域的技術人員來說,使用上述任一種碼來執行資料的編碼與解碼是屬於公知常識,故在此便不贅述。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體510與電源管理電路512。
緩衝記憶體510是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路512是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
圖6是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。必須瞭解的是,在此描述可複寫式非揮發性記憶體模組406之實體單元的運作時,以“選擇”與“分組”等詞來操作實體單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組406之實體單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組406的實體單元進行操作。
在本範例實施例中,可複寫式非揮發性記憶體模組406的記憶胞會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元至少可被分類為下實體程式化單元與上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit,LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit,MSB)是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。
在本範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面(page)或是實體扇(sector)。若實體程式化單元為實體頁面,則此些實體程式化單元通常包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體扇,用以儲存使用者資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼)。在本範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte, B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,並且每一個實體扇的大小也可以是更大或更小。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊(block)。
請參照圖6,記憶體管理電路502會將可複寫式非揮發性記憶體模組406的實體單元610(0)~610(B)邏輯地分組為儲存區601與替換區602。儲存區601中的實體單元610(0)~610(A)是用以儲存資料,而替換區602中的實體單元610(A+1)~610(B)是用以替換儲存區601中損壞的實體單元。例如,實體單元的替換是以一個實體抹除單元為單位。在本範例實施例中,實體單元610(0)~610(B)中的每一者皆是指至少一實體程式化單元。或者,在另一範例實施例中,實體單元610(0)~610(B)中的每一者亦可以包含任意數目之記憶胞。
記憶體管理電路502會配置邏輯單元612(0)~612(C)以映射儲存區601中的實體單元610(0)~610(A)的至少一部分。在本範例實施例中,主機系統11是透過邏輯位址(logical address, LA)來存取儲存區601中的資料,因此,邏輯單元612(0)~612(C)中的每一者是指一個邏輯位址。然而,在另一範例實施例中,邏輯單元612(0)~612(C)中的每一者也可以是指一個邏輯程式化單元、一個邏輯抹除單元或者由多個連續或不連續的邏輯位址組成,視實務上的需求而定。此外,邏輯單元612(0)~612(C)中的每一者可被映射至一或多個實體單元。
在本範例實施例中,記憶體管理電路502會將邏輯單元與實體單元之間的映射關係(亦稱為邏輯-實體映射關係)記錄於至少一邏輯-實體映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路502可根據此邏輯-實體映射表來執行對於記憶體儲存裝置10的資料存取。
圖7是根據本發明的一範例實施例所繪示的讀取硬位元資訊之示意圖。本範例實施例是以SLC NAND型快閃記憶體為例,其中橫軸代表記憶胞的臨界電壓,而縱軸代表記憶胞個數。然而,在另一範例實施例中,圖7亦可以用來表示MLC NAND或TLC NAND型快閃記憶體中一部份的臨界電壓分布。
請參照圖7,在程式化可複寫式非揮發性記憶體模組406中的多個記憶胞(以下亦稱為第一記憶胞)之後,被程式化的每一個記憶胞的臨界電壓會屬於分佈710與720的其中之一。例如,若某一個記憶胞被用來儲存位元“1”,則此記憶胞的臨界電壓會落在分佈710;而若某一個記憶胞被用來儲存位元“0”,則此記憶胞的臨界電壓會落在分佈720。
值得一提的是,在本範例實施例中,每一個記憶胞是用以儲存一個位元,故此些記憶胞的臨界電壓之分佈有兩種可能(例如,分佈710與720)。然而,在其他範例實施例中,若一個記憶胞是用以儲存多個位元,則對應的臨界電壓之分佈則可能有四種(例如,MLC NAND型快閃記憶體)、八種(例如,TLC NAND型快閃記憶體)或其他任意個可能。此外,本發明也不限制每一個分佈所代表的位元。例如,在圖7的另一範例實施例中,分佈710是代表位元“0”,並且分佈720是代表位元“1”。
一般來說,若要讀取此些第一記憶胞所儲存的資料,記憶體管理電路502會發送一個讀取指令序列(以下亦稱為第一讀取指令序列)至可複寫式非揮發性記憶體模組406。此第一讀取指令序列用以指示基於一個電壓準位來從此些第一記憶胞的實體位址讀取資料。在一範例實施例中,此電壓準位亦稱為預設硬決策電壓準位。根據此讀取指令序列,可複寫式非揮發性記憶體模組406會施加一個讀取電壓(例如,電壓準位V
H1)至第一記憶胞並且將所獲得的資料傳送給記憶體管理電路502。例如,電壓準位V
H1即為預設硬決策電壓準位。若某一個記憶胞的臨界電壓小於所施予的電壓準位V
H1(例如,臨界電壓屬於分布710的記憶胞),則記憶體管理電路502會讀到位元“1”;若某一個記憶胞的臨界電壓大於所施予的電壓準位V
H1(例如,臨界電壓屬於分布720的記憶胞),則記憶體管理電路502會讀到位元“0”。
然而,隨著可複寫式非揮發性記憶體模組406的使用時間及/或損耗程度增加,可複寫式非揮發性記憶體模組406中的記憶胞可能會發生性能衰退(degradation)。例如,在屬於分佈710與720的記憶胞發生性能衰退後,分佈710與720可能會逐漸相互靠近甚至相互重疊。例如,圖7中的分佈711與721分別用來表示性能衰退後的分佈710與720。在發生性能衰退後,若持續使用此些第一記憶胞來儲存資料並使用相同的預設硬決策電壓準位(例如,電壓準位V
H1)來讀取此些第一記憶胞,讀取到的資料可能會包含許多錯誤。以圖7中的分佈711與721為例,斜線區域內之記憶胞仍屬於分布711,但其臨界電壓已高於電壓準位V
H1。因此,若持續使用電壓準位V
H1來讀取此些第一記憶胞,部分實際上儲存位元“1”的記憶胞(例如,分布711中的斜線區域內的記憶胞)會被誤判為儲存位元“0”。
因此,在藉由預設硬決策電壓準位(例如,電壓準位V
H1)讀取到資料之後,錯誤檢查與校正電路508會解碼此資料,以嘗試更正此資料中可能存在的錯誤。在此,藉由硬決策電壓準位所讀取之資料亦稱為硬位元資訊(例如,圖7的硬位元HB
1),並且解碼硬位元資訊之操作亦稱為硬解碼操作。本領域技術人員應當可以明瞭錯誤檢查與校正電路508如何使用低密度奇偶檢查碼等來執行硬解碼操作,以及錯誤檢查與校正電路508需要具備怎樣的硬體結構來完成所需執行的硬解碼操作。例如,硬解碼操作可能包含用於產生校驗子(syndrome)的奇偶(parity)檢查操作以及用於決定錯誤位元的位元翻轉(bit flipping)演算法、最小總合(min-sum)演算法及/或總和乘積(sum-product)演算法等。然後,錯誤檢查與校正電路508會判斷所執行的硬解碼操作是否成功(或失敗)。若此硬解碼操作成功(例如,資料中所有的錯誤皆被更正),錯誤檢查與校正電路508會輸出解碼成功的資料。若此硬解碼操作失敗(例如,資料中的錯誤無法被完全更正),錯誤檢查與校正電路508會進入軟解碼模式。
在軟解碼模式中,記憶體管理電路502會發送另一讀取指令序列(以下亦稱為第二讀取指令序列),以指示基於多個電壓準位來從此些第一記憶胞中讀取資料。在一範例實施例中,此些電壓準位亦稱為預設軟決策電壓準位。例如,此些預設軟決策電壓準位會對應於在先前使用的預設硬決策電壓準位。根據第二讀取指令序列,可複寫式非揮發性記憶體模組406會依序將多個讀取電壓施加至此些第一記憶胞並將所獲得的資料回傳給記憶體管理電路502。
圖8是根據本發明的一範例實施例所繪示的讀取軟位元資訊之示意圖。
請參照圖8,接續於圖7的範例實施例,在軟解碼模式中,可複寫式非揮發性記憶體模組406會基於多個預設軟決策電壓準位(例如,電壓準位V
S1~V
S5)來依序地讀取此些第一記憶胞並回傳所獲得的資料。電壓準位V
S1~V
S5可以是依照任意順序被使用。在基於電壓準位V
S1~V
S5來讀取第一記憶胞中的某一者之後,若此記憶胞的臨界電壓小於電壓值最小的電壓準位V
S4(即位於區域801),資料“11111”或“100”會被回傳;若此記憶胞的臨界電壓介於電壓準位V
S4與電壓準位V
S2之間(即位於區域802),資料“01111”或“101”會被回傳;若此記憶胞的臨界電壓介於電壓準位V
S2與電壓準位V
S1之間(即位於區域803),資料“00111”或“111”會被回傳;若此記憶胞的臨界電壓介於電壓準位V
S1與電壓準位V
S3之間(即位於區域804),資料“00011”或“011”會被回傳;若此記憶胞的臨界電壓介於電壓準位V
S3與電壓準位V
S5之間(即位於區域805),資料“00001”或“001”會被回傳;並且若此記憶胞的臨界電壓高於電壓值最高的電壓準位V
S5(即位於區域806),資料“00000”或“000”會被回傳。
在一範例實施例中,預設軟決策電壓準位中的某一者(例如,圖8中的電壓準位V
S3)可能會等於或相近於預設硬決策電壓準位(例如,圖7中的電壓準位V
H1)。任兩個相鄰的預設軟決策電壓準位之間的電壓差距可能是同一個預設值。此外,預設軟決策電壓準位之總數也可以更多(例如,7個或9個等)或更少(例如,3個)。
在藉由預設軟決策電壓準位(例如,電壓準位V
S1~V
S5)讀取到資料之後,錯誤檢查與校正電路508會解碼此資料,以嘗試更正此資料中可能存在的錯誤。在此,藉由多個軟決策電壓準位所讀取之資料亦稱為軟位元資訊(例如,圖8中包含軟位元SB
1~SB
5的軟位元資訊831或將部分軟位元進行邏輯運算而產生的軟位元資訊832),並且解碼軟位元資訊之操作亦稱為軟解碼操作。本領域技術人員應當可以明瞭錯誤檢查與校正電路508如何使用低密度奇偶檢查碼等來執行軟解碼操作,以及錯誤檢查與校正電路508需要具備怎樣的硬體結構來完成所需執行的軟解碼操作。例如,軟解碼操作可能進一步包含更新對數相似性比值(log likelihood ratio, LLR)等通道資訊之操作。此外,軟解碼操作可能包含與硬解碼操作的至少一部分相同或相異的解碼操作。
特別是,相對於硬位元資訊,由於對應於每一個記憶胞的軟位元資訊可提供更多的通道資訊,軟解碼操作的錯誤更正能力往往會高於硬解碼操作的錯誤更正能力。然後,錯誤檢查與校正電路508會判斷所執行的軟解碼操作是否成功(或失敗)。若此軟解碼操作成功(例如,資料中所有的錯誤皆被更正),錯誤檢查與校正電路508會輸出解碼成功的資料。
若此軟解碼操作仍然失敗(例如,資料中的錯誤仍無法完全更正),記憶體管理電路502會發送多個測試指令序列以指示基於多個測試電壓群組來讀取第一記憶胞以獲得相應的軟位元資訊。每一個測試電壓群組包含多個測試電壓準位,且每一個測試電壓群組(或其中的測試電壓準位)皆對應於一個偏移值(offset value)。此偏移值例如是記錄於一查找表並且用於移動(shift)預設硬決策電壓準位(或預設軟決策電壓準位)來產生一個相應的測試電壓群組。此外,每一個測試電壓群組中的測試電壓準位之總數皆相同。
根據所獲得的軟位元資訊,記憶體管理電路502會獲得多個評估參數。每一個評估參數對應於第一記憶胞中符合一特定狀態條件之記憶胞的總數。根據此些評估參數,記憶體管理電路502會更新預設硬決策電壓準位。例如,在圖7的範例實施例中,根據此些評估參數,預設硬決策電壓準位可能會被從電壓準位V
H1更新至電壓準位V
H2。從圖7可以看出,基於電壓準位V
H2所讀取之資料所包含的錯誤(例如,錯誤位元之總數)有相當高的機率會顯著地少於基於電壓準位V
H1所讀取之資料所包含的錯誤。此外,將預設硬決策電壓準位從電壓準位V
H1更新至電壓準位V
H2之操作亦可視為追蹤(track)最佳讀取電壓準位之操作。此外,對應於更新預設硬決策電壓準位,預設軟決策電壓準位也可以被更新。例如,根據所獲得的多個評估參數,對應於某一個偏移值的測試電壓群組中的多個測試電壓準位可能會被設為新的預設軟決策電壓準位。
圖9A至9C是根據本發明的一範例實施例所繪示的追蹤最佳讀取電壓準位的示意圖。
請參照圖9A,在軟解碼操作失敗後,記憶體管理電路502會根據查找表獲得一個偏移值並根據此偏移值獲得屬於某一測試電壓群組的多個測試電壓準位(例如,電壓準位V
C1_1~V
C1_5)。相對於預設測試電壓準位(例如,電壓準位V
S1~V
S5),根據此偏移值所獲得的測試電壓準位(例如,電壓準位V
C1_1~V
C1_5)在橫軸上分別向右移+Δ。例如,電壓準位V
C1_1~V
C1_5相對於電壓準位V
S1~V
S5分別增加了Δ(mV)的電壓值。記憶體管理電路502會發送一個測試指令序列以指示基於電壓準位V
C1_1~V
C1_5來讀取第一記憶胞。然後,記憶體管理電路502會獲得相應的軟位元資訊931(或軟位元資訊932)。
根據軟位元資訊931(或軟位元資訊932),記憶體管理電路502會統計此些第一記憶胞中臨界電壓屬於一轉態(transition state)區域之記憶胞的總數。其中,此轉態區域包含電壓準位V
C1_1~V
C1_5中任兩者之間的區域。在本範例實施例中,轉態區域是指此測試電壓群組中電壓最大者(即電壓準位V
C1_5)與電壓最小者(即電壓準位V
C1_4)之間的區域R
T1。或者,在另一範例實施例中,此轉態區域亦可以是指電壓準位V
C1_2與V
C1_3之間的區域R
T1’。例如,記憶體管理電路502可統計對應於軟位元資訊“101”、“111”、“011”及“001”之記憶胞的總數來獲得臨界電壓屬於區域R
T1之記憶胞的總數。或者,記憶體管理電路502也可以統計對應於軟位元資訊“111”與“011”之記憶胞的總數來獲得臨界電壓屬於區域R
T1’之記憶胞的總數。然後,記憶體管理電路502會記錄下所計算之總數或一個對應值作為對應於此測試電壓群組(或偏移值+Δ)的評估參數。
請參照圖9B,記憶體管理電路502會根據查找表獲得另一個偏移值並根據此偏移值獲得屬於某一測試電壓群組的多個測試電壓準位(例如,電壓準位V
C2_1~V
C2_5)。相對於電壓準位V
S1~V
S5,電壓準位V
C2_1~V
C2_5在橫軸上分別向右移+2Δ。例如,電壓準位V
C2_1~V
C2_5相對於電壓準位V
S1~V
S5分別增加了2Δ(mV)的電壓值。記憶體管理電路502會發送一個測試指令序列以指示基於電壓準位V
C2_1~V
C2_5來讀取第一記憶胞。然後,記憶體管理電路502會獲得相應的軟位元資訊941(或軟位元資訊942)。
根據軟位元資訊941(或軟位元資訊942),記憶體管理電路502會統計此些第一記憶胞中臨界電壓屬於一轉態區域之記憶胞的總數。其中,此轉態區域包含電壓準位V
C2_1~V
C2_5中任兩者之間的區域。在本範例實施例中,記憶體管理電路502會統計對應於軟位元資訊“101”、“111”、“011”及“001”之記憶胞的總數來獲得臨界電壓屬於區域R
T2(即電壓準位V
C2_4與V
C2_5之間)的記憶胞之總數。或者,在另一範例實施例中,記憶體管理電路502會統計對應於軟位元資訊“111”與“011”之記憶胞的總數來獲得臨界電壓落於電壓準位V
C2_2與V
C2_3之間的記憶胞之總數。然後,記憶體管理電路502會記錄下所計算之總數或一個對應值作為對應於此測試電壓群組(或偏移值+2Δ)的評估參數。
請參照圖9C,記憶體管理電路502還可以根據查找表獲得另一個偏移值並根據此偏移值獲得屬於某一測試電壓群組的多個測試電壓準位(例如,電壓準位V
C3_1~V
C3_5)。相對於電壓準位V
S1~V
S5,電壓準位V
C3_1~V
C3_5在橫軸上分別向右移+3Δ。例如,電壓準位V
C3_1~V
C3_5相對於電壓準位V
S1~V
S5分別增加了3Δ(mV)的電壓值。記憶體管理電路502會發送一個測試指令序列以指示基於電壓準位V
C3_1~V
C3_5來讀取第一記憶胞並且獲得相應的軟位元資訊951(或軟位元資訊952)。
根據軟位元資訊951(或軟位元資訊952),記憶體管理電路502會再次統計此些第一記憶胞中臨界電壓屬於一轉態區域之記憶胞的總數。其中,此轉態區域包含電壓準位V
C3_1~V
C3_5中任兩者之間的區域。在本範例實施例中,記憶體管理電路502會統計對應於軟位元資訊“101”、“111”、“011”及“001”之記憶胞的總數來獲得臨界電壓屬於區域R
T3(即電壓準位V
C3_4與V
C3_5之間的區域)的記憶胞之總數。或者,在另一範例實施例中,記憶體管理電路502會統計對應於軟位元資訊“111”與“011”之記憶胞的總數來獲得臨界電壓落於電壓準位V
C3_2與V
C3_3之間的記憶胞之總數。然後,記憶體管理電路502會記錄下所計算之總數或一個對應值作為對應於此測試電壓群組(或偏移值+3Δ)的評估參數。依此類推,對應於更多的測試電壓群組(或偏移值+4Δ、-Δ、-2Δ等等),更多的評估參數亦可被決定。
記憶體管理電路502會根據所獲得的評估參數之間的數值關係來更新預設硬決策電壓準位。例如,若評估參數的值正相關於相應之總數,記憶體管理電路502會比較所獲得的多個評估參數並且選擇此些評估參數中的最小者所對應的偏移值。然後,記憶體管理電路502會根據所選定的偏移值來更新預設硬決策電壓準位。
圖10A是根據本發明的一範例實施例所繪示的記憶胞數目與偏移值之對應關係的示意圖。
請參照圖10A,在圖7至圖9C的範例實施例中,臨界電壓屬於轉態區域R
T1的記憶胞之總數為N
1,臨界電壓屬於轉態區域R
T2的記憶胞之總數為N
2,並且臨界電壓屬於轉態區域R
T3的記憶胞之總數為N
3。N
1對應於偏移值+Δ,N
2對應於偏移值+2Δ,並且N
3對應於偏移值+3Δ。根據圖9A、圖9B及圖9C可知,N
1會大於N
2,並且N
2會大於N
3。因此,記憶體管理電路502可以將電壓準位V
H1加上3Δ而獲得電壓準位V
H2。此外,在一範例實施例中,記憶體管理電路502亦可以直接將電壓準位V
C3_1設為電壓準位V
H2。
在一範例實施例中,記憶體管理電路502亦可以統計第一記憶胞中臨界電壓屬於穩態(stable state)區域之記憶胞的總數。其中,此穩態區域包含某一測試電壓群組中電壓最大者與電壓最小者之間的區域之外的區域。特別是,在同一個測試電壓群組中的測試電壓準位所劃分的多個區域中,穩態區域與轉態區域不重疊。例如,在圖9A的一範例實施例中,穩態區域是指區域R
T1之外的區域R
S1。或者,在圖9A的另一範例實施例中,穩態區域是指區域R
T1’之外的區域R
S1’。此外,在圖9A的另一範例實施例中,同一測試電壓群組所劃分的轉態區域與穩態區域亦可以分別是區域R
T1’與區域R
S1。其中,區域R
T1’與其左右的區域R
S1之間分別具有一個間隙(gap)而並非是連續的。記憶體管理電路502可以統計臨界電壓屬於區域R
S1(或者區域R
S1’)之記憶胞的總數並決定相應的評估參數。例如,在圖9B的一範例實施例中,穩態區域是指區域R
T2之外的區域R
S2。記憶體管理電路502可以統計臨界電壓屬於區域R
S2之記憶胞的總數並決定相應的評估參數。例如,在圖9C的一範例實施例中,穩態區域是指區域R
T3之外的區域R
S3。記憶體管理電路502可以統計臨界電壓屬於區域R
S3之記憶胞的總數並決定相應的評估參數。然後,記憶體管理電路502可以根據此些評估參數之間的數值關係來更新預設硬決策電壓準位。例如,若評估參數的值正相關於相應之總數,記憶體管理電路502會比較所獲得的多個評估參數並且選擇此些評估參數中的最大者所對應的偏移值。然後,記憶體管理電路502會根據所選定的偏移值來更新預設硬決策電壓準位。此外,圖9A的區域劃分方式亦可以應用至圖9B與圖9C,本發明不加以限制。
圖10B是根據本發明的另一範例實施例所繪示的記憶胞數目與偏移值之對應關係的示意圖。
請參照圖10B,在圖7至圖9C的另一範例實施例中,臨界電壓屬於穩態區域R
S1的記憶胞之總數為N
1’,臨界電壓屬於穩態區域R
S2的記憶胞之總數為N
2’,並且臨界電壓屬於穩態區域R
S3的記憶胞之總數為N
3’。N
1’對應於偏移值+Δ,N
2’對應於偏移值+2Δ,並且N
3’對應於偏移值+3Δ。由於N
1’負相關於N
1,N
2’負相關於N
2,並且N
3’負相關於N
3,故N
3’會大於N
2’,並且N
2’會大於N
1’。因此,記憶體管理電路502同樣可將電壓準位V
H1加上3Δ而獲得電壓準位V
H2。
在更新預設硬決策電壓準位之後,記憶體管理電路502會發送一讀取指令序列以指示基於更新後的預設硬決策電壓準位來讀取第一記憶胞以獲得相應的硬位元資訊。例如,請再次參照圖7,可複寫式非揮發性記憶體模組406會基於電壓準位V
H2來讀取第一記憶胞並回傳包含硬位元HB
2的硬位元資訊。相較於基於電壓準位V
H1所讀取的硬位元資訊,基於電壓準位V
H2所讀取的硬位元資訊中的錯誤可顯著地減少。然後,錯誤檢查與校正電路508會對此硬位元資訊執行硬解碼操作並判斷是否解碼成功。若解碼成功,錯誤檢查與校正電路508會輸出解碼成功的資料。若解碼失敗,錯誤檢查與校正電路508會再次進入軟解碼模式。
在軟解碼模式中,記憶體管理電路502會發送一讀取指令序列以指示基於更新後的多個預設軟決策電壓準位來讀取第一記憶胞以獲得相應的軟位元資訊。例如,在圖9A至圖9C的範例實施例中,更新後的預設軟決策電壓準位可能會包含圖9C中的電壓準位V
C3_1~V
C3_5中的全部或至少一者。可複寫式非揮發性記憶體模組406會基於更新後的多個預設軟決策電壓準位來讀取第一記憶胞並回傳相應的軟位元資訊。然後,錯誤檢查與校正電路508會對此軟位元資訊執行軟解碼操作並判斷是否解碼成功。若此軟解碼操作成功,錯誤檢查與校正電路508會輸出解碼成功的資料。若此軟解碼操作失敗,錯誤檢查與校正電路508會判定解碼失敗。
圖11是根據本發明的一範例實施例所繪示的轉態區域與穩態區域的示意圖。
請參照圖11,對於TLC NAND型快閃記憶體來說,第一記憶胞的臨界電壓分布可能會包含分布1101~1108。屬於分布1101~1108的記憶胞分別用以儲存位元組“111”、“011”、“001”、“000”、“010”、“110”、“100”及“101”。對於包含此些記憶胞的下實體程式化單元1110(即被視為儲存位元組中的第一個位元的實體單元)來說,轉態區域包括區域R
T11與R
T12,而穩態區域則包括區域R
S11與R
S12。對於包含此些記憶胞的上實體程式化單元1120(即被視為儲存位元組中的第二個位元的實體單元)來說,轉態區域包括區域R
T13、R
T14及R
T15,而穩態區域則包括區域R
S13、R
S14及R
S15。對於包含此些記憶胞的額外(extra)實體程式化單元1130(即被視為儲存位元組中的第三個位元的實體單元)來說,轉態區域包括區域R
T16與R
T17,而穩態區域則包括區域R
S16與R
S17。
在圖11的範例實施例中,每一個轉態區域(例如,區域R
T11)與相應的穩態區域(例如,區域R
S11)皆可能具有臨界電壓的上限與下限。值得一提的是,圖7至圖9C中的分布711與721亦可以視為是圖11中任意兩個相鄰的分布(例如,分布1101與1102或者1102與1103等等)。另外,由於每一個轉態區域與相應的穩態區域都是基於所施予的測試電壓準位而劃分的,根據不同的測試電壓群組,圖11中劃分的各個轉態區域與相應的穩態區域可能會向左移動、向右移動、變寬或變窄等等。此外,根據圖11的範例實施例中,本領域的通常知識者也可以明瞭如何在其他類型的快閃記憶體(例如,MLC NAND型快閃記憶體)的臨界電壓分布中基於特定的測試電壓群組劃分相應的轉態區域與穩態區域,在此便不贅述。
圖12是根據本發明的一範例實施例所繪示的解碼方法的流程圖。
請參照圖12,在步驟S1201中,基於一預設硬決策電壓準位讀取多個第一記憶胞以獲得硬位元資訊並對硬位元資訊執行硬解碼操作。在步驟S1202中,判斷硬解碼操作是否成功(或失敗)。若硬解碼操作成功,在步驟S1203中,輸出解碼成功的碼字。若硬解碼操作失敗,在步驟S1204中,基於多個預設軟決策電壓準位讀取第一記憶胞以獲得軟位元資訊並對軟位元資訊執行軟解碼操作。在步驟S1205中,判斷軟解碼操作是否成功(或失敗)。若軟解碼操作成功,在步驟S1203中,輸出解碼成功的碼字。若軟解碼操作失敗,在步驟S1206中,基於多個第一測試電壓準位讀取第一記憶胞以獲得第一軟位元資訊並基於多個第二測試電壓準位讀取第一記憶胞以獲得第二軟位元資訊。在步驟S1207中,根據第一軟位元資訊獲得第一評估參數並根據第二軟位元資訊獲得第二評估參數。在步驟S1208中,根據第一評估參數與第二評估參數更新預設硬決策電壓準位。
圖13是根據本發明的另一範例實施例所繪示的解碼方法的流程圖。
請參照圖13,在步驟S1301中,基於一預設硬決策電壓準位讀取多個第一記憶胞以獲得硬位元資訊並對硬位元資訊執行硬解碼操作。在步驟S1302中,判斷硬解碼操作是否成功(或失敗)。若硬解碼操作成功,在步驟S1303中,輸出解碼成功的碼字。若硬解碼操作失敗,在步驟S1304中,基於多個預設軟決策電壓準位讀取第一記憶胞以獲得軟位元資訊並對軟位元資訊執行軟解碼操作。在步驟S1305中,判斷軟解碼操作是否成功(或失敗)。若軟解碼操作成功,在步驟S1303中,輸出解碼成功的碼字。若軟解碼操作失敗,在步驟S1306中,判斷是否還有未檢查的偏移值。若還有未檢查的偏移值,在步驟S1307中,基於多個測試電壓準位讀取第一記憶胞以獲得軟位元資訊。例如,此些測試電壓準位是對應於某一個被選定來檢查的偏移值。
在步驟S1308中,根據步驟S1307中獲得的軟位元資訊獲得一評估參數。在步驟S1309中,判斷步驟S1308中獲得的評估參數是否優於一預設評估參數。例如,若評估參數的值正相關於臨界電壓屬於一轉態區域之記憶胞的總數,且所獲得的評估參數小於預設評估參數,步驟S1309可判定為是並且進入步驟S1310以將所獲得的評估參數設定為預設評估參數。反之,若評估參數的值正相關於臨界電壓屬於轉態區域之記憶胞的總數,且所獲得的評估參數大於預設評估參數,步驟S1309可判定為否並且回到步驟S1306。回到步驟S1306之後,下一個偏移值可被檢查(例如,根據下一個偏移值決定多個測試電壓準位)。值得一提的是,若步驟S1307是第一次執行(即尚未設定過預設評估參數),步驟S1308獲得的評估參數會被直接在步驟S1310中被設定為預設評估參數。
在步驟S1311中,根據預設評估參數更新預設硬決策電壓準位。例如,根據對應於此預設評估參數的偏移值將預設硬決策電壓準位設定為最佳讀取電壓準位。然後,步驟S1301等會被重複執行,在此便不贅述。此外,在檢查更多的偏移值之後,若再次執行到步驟S1306時,所有的偏移值都已經被檢查過了(即對應於每一個可用之偏移值的評估參數皆已被獲得),在步驟S1306中,判定解碼失敗。例如,若錯誤檢查與校正電路508判定解碼失敗,記憶體管理電路502會發送一個讀取錯誤的訊息給主機系統11。
圖14是根據本發明的另一範例實施例所繪示的解碼方法的流程圖。
請參照圖14,在步驟S1401中,基於一預設硬決策電壓準位讀取多個第一記憶胞以獲得硬位元資訊並對硬位元資訊執行硬解碼操作。在步驟S1402中,判斷硬解碼操作是否成功(或失敗)。若硬解碼操作成功,在步驟S1403中,輸出解碼成功的碼字。若硬解碼操作失敗,在步驟S1404中,基於多個預設軟決策電壓準位讀取第一記憶胞以獲得軟位元資訊並對軟位元資訊執行軟解碼操作。在步驟S1405中,判斷軟解碼操作是否成功(或失敗)。若軟解碼操作成功,在步驟S1403中,輸出解碼成功的碼字。若軟解碼操作失敗,在步驟S1406中,判斷是否已找到最佳讀取電壓準位。若否,在步驟S1407中,判斷是否還有未檢查的偏移值。
若還有未檢查的偏移值,在步驟S1408中,基於多個測試電壓準位讀取第一記憶胞以獲得軟位元資訊。例如,此些測試電壓準位是對應於某一個被選定來檢查的偏移值。在步驟S1409中,根據步驟S1408中獲得的軟位元資訊獲得一評估參數並且回到步驟S1407中再次檢查是否有未檢查的偏移值。若是,步驟S1408與S1409會被重複執行。若在步驟S1407中判定所有的偏移值皆已被檢查(即對應於每一個可用之偏移值的評估參數皆已被獲得),在步驟S1410中,根據所獲得的多個評估參數來更新預設硬決策電壓準位。例如,可根據此些評估參數之間的數值關係來選擇一個偏移值,並根據此偏移值來設定最佳讀取電壓準位。關於根據多個評估參數之間的數值關係來選擇偏移值與設定最佳讀取電壓準位之操作已詳述於上,在此便不贅述。在步驟S1410之後,步驟S1401等會被重複執行。此外,若再次執行到步驟S1406時,由於最佳讀取電壓準位已經在重覆執行的步驟S1401中被使用,步驟S1411會被執行以判定解碼失敗。
然而,圖12至圖14中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖12至圖14中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖12至圖14的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,在軟解碼程序失敗之後,至少兩組的測試電壓準位會被用來讀取相同的記憶胞。然後,相應的多個評估參數會被獲得,其中每一個評估參數對應於記憶胞中符合特定狀態條件之記憶胞的總數。根據此些評估參數,預設硬決策電壓準位即可被更新。藉此,可提升在解碼操作中尋找最佳讀取電壓準位之效率,進而提升解碼效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
110‧‧‧系統匯流排
111‧‧‧處理器
112‧‧‧隨機存取記憶體
113‧‧‧唯讀記憶體
114‧‧‧資料傳輸介面
12‧‧‧輸入/輸出(I/O)裝置
20‧‧‧主機板
201‧‧‧隨身碟
202‧‧‧記憶卡
203‧‧‧固態硬碟
204‧‧‧無線記憶體儲存裝置
205‧‧‧全球定位系統模組
206‧‧‧網路介面卡
207‧‧‧無線傳輸裝置
208‧‧‧鍵盤
209‧‧‧螢幕
210‧‧‧喇叭
32‧‧‧SD卡
33‧‧‧CF卡
34‧‧‧嵌入式儲存裝置
341‧‧‧嵌入式多媒體卡
342‧‧‧嵌入式多晶片封裝儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧錯誤檢查與校正電路
510‧‧‧緩衝記憶體
512‧‧‧電源管理電路
601‧‧‧儲存區
602‧‧‧替換區
610(0)~610(B)‧‧‧實體單元
612(0)~612(C)‧‧‧邏輯單元
710、711、720、721、1101~1108‧‧‧分布
801~806、RT1、RS1、RT1’、RS1’、RT2、RS2、RT3、RS3、RT11、RS11、RT12、RS12、RT13、RS13、RT14、RS14、RT15、RS15、RT16、RS16、RT17、RS17‧‧‧區域
831、832、931、932、941、942、951、952‧‧‧軟位元資訊
RT1、RS1、RT1’、RS1’、RT2、RS2、RT3、RS3‧‧‧
1110‧‧‧上實體程式化單元
1120‧‧‧下實體程式化單元
1130‧‧‧額外實體程式化單元
S1201‧‧‧步驟(基於一預設硬決策電壓準位讀取多個第一記憶胞以獲得硬位元資訊並對硬位元資訊執行硬解碼操作)
S1202‧‧‧步驟(硬解碼操作是否成功)
S1203‧‧‧步驟(輸出解碼成功的碼字)
S1204‧‧‧步驟(基於多個預設軟決策電壓準位讀取第一記憶胞以獲得軟位元資訊並對軟位元資訊執行軟解碼操作)
S1205‧‧‧步驟(軟解碼操作是否成功)
S1206‧‧‧步驟(基於多個第一測試電壓準位讀取第一記憶胞以獲得第一軟位元資訊並基於多個第二測試電壓準位讀取第一記憶胞以獲得第二軟位元資訊)
S1207‧‧‧步驟(根據第一軟位元資訊計算第一評估參數並根據第二軟位元資訊計算第二評估參數)
S1208‧‧‧步驟(根據第一評估參數與第二評估參數更新預設硬決策電壓準位)
S1301‧‧‧步驟(基於一預設硬決策電壓準位讀取多個第一記憶胞以獲得硬位元資訊並對硬位元資訊執行硬解碼操作)
S1302‧‧‧步驟(硬解碼操作是否成功)
S1303‧‧‧步驟(輸出解碼成功的碼字)
S1304‧‧‧步驟(基於多個預設軟決策電壓準位讀取第一記憶胞以獲得軟位元資訊並對軟位元資訊執行軟解碼操作)
S1305‧‧‧步驟(軟解碼操作是否成功)
S1306‧‧‧步驟(是否還有未檢查的偏移值)
S1307‧‧‧步驟(基於多個測試電壓準位讀取第一記憶胞以獲得軟位元資訊)
S1308‧‧‧步驟(根據獲得的軟位元資訊計算一評估參數)
S1309‧‧‧步驟(判斷計算的評估參數是否優於一預設評估參數)
S1310‧‧‧步驟(將所計算的評估參數設定為預設評估參數)
S1311‧‧‧步驟(根據預設評估參數更新預設硬決策電壓準位)
S1312‧‧‧步驟(基於一預設硬決策電壓準位讀取多個第一記憶胞以獲得硬位元資訊並對硬位元資訊執行硬解碼操作)
S1401‧‧‧步驟(判定解碼失敗)
S1402‧‧‧步驟(硬解碼操作是否成功)
S1403‧‧‧步驟(輸出解碼成功的碼字)
S1404‧‧‧步驟(基於多個預設軟決策電壓準位讀取第一記憶胞以獲得軟位元資訊並對軟位元資訊執行軟解碼操作)
S1405‧‧‧步驟(軟解碼操作是否成功)
S1406‧‧‧步驟(是否已找到最佳讀取電壓準位)
S1407‧‧‧步驟(是否還有未檢查的偏移值)
S1408‧‧‧步驟(基於多個測試電壓準位讀取第一記憶胞以獲得軟位元資訊)
S1409‧‧‧步驟(據獲得的軟位元資訊計算一評估參數)
S1410‧‧‧步驟(根據所計算的多個評估參數來更新預設硬決策電壓準位)
S1411‧‧‧步驟(判定解碼失敗)
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。 圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。 圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。 圖6是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。 圖7是根據本發明的一範例實施例所繪示的讀取硬位元資訊之示意圖。 圖8是根據本發明的一範例實施例所繪示的讀取軟位元資訊之示意圖。 圖9A至9C是根據本發明的一範例實施例所繪示的追蹤最佳讀取電壓準位的示意圖。 圖10A是根據本發明的一範例實施例所繪示的記憶胞數目與偏移值之對應關係的示意圖。 圖10B是根據本發明的另一範例實施例所繪示的記憶胞數目與偏移值之對應關係的示意圖。 圖11是根據本發明的一範例實施例所繪示的轉態區域與穩態區域的示意圖。 圖12是根據本發明的一範例實施例所繪示的解碼方法的流程圖。 圖13是根據本發明的另一範例實施例所繪示的解碼方法的流程圖。 圖14是根據本發明的另一範例實施例所繪示的解碼方法的流程圖。
S1201‧‧‧步驟(基於一預設硬決策電壓準位讀取多個第一記憶胞以獲得硬位元資訊並對硬位元資訊執行硬解碼操作)
S1202‧‧‧步驟(硬解碼操作是否成功)
S1203‧‧‧步驟(輸出解碼成功的碼字)
S1204‧‧‧步驟(基於多個預設軟決策電壓準位讀取第一記憶胞以獲得軟位元資訊並對軟位元資訊執行軟解碼操作)
S1205‧‧‧步驟(軟解碼操作是否成功)
S1206‧‧‧步驟(基於多個第一測試電壓準位讀取第一記憶胞以獲得第一軟位元資訊並基於多個第二測試電壓準位讀取第一記憶胞以獲得第二軟位元資訊)
S1207‧‧‧步驟(根據第一軟位元資訊獲得第一評估參數並根據第二軟位元資訊獲得第二評估參數)
S1208‧‧‧步驟(根據第一評估參數與第二評估參數更新預設硬決策電壓準位)
Claims (21)
- 一種解碼方法,用於包括多個記憶胞的一可複寫式非揮發性記憶體模組,該解碼方法包括: 基於一預設硬決策電壓準位讀取該些記憶胞中的多個第一記憶胞以獲得一硬位元資訊; 對該硬位元資訊執行一硬解碼操作; 若該硬解碼操作失敗,基於多個預設軟決策電壓準位讀取該些第一記憶胞以獲得一軟位元資訊; 對該軟位元資訊執行一軟解碼操作; 若該軟解碼操作失敗,基於多個第一測試電壓準位讀取該些第一記憶胞以獲得一第一軟位元資訊並基於多個第二測試電壓準位讀取該些第一記憶胞以獲得一第二軟位元資訊; 根據該第一軟位元資訊獲得一第一評估參數並根據該第二軟位元資訊獲得一第二評估參數,其中該第一評估參數對應於該些第一記憶胞中符合一第一狀態條件之記憶胞的一第一總數,其中該第二評估參數對應於該些第一記憶胞中符合一第二狀態條件之記憶胞的一第二總數;以及 根據該第一評估參數與該第二評估參數更新該預設硬決策電壓準位。
- 如申請專利範圍第1項所述的解碼方法,其中根據該第一軟位元資訊獲得該第一評估參數並根據該第二軟位元資訊獲得該第二評估參數之步驟包括: 根據該第一軟位元資訊統計該些第一記憶胞中臨界電壓屬於一第一轉態區域之記憶胞的一總數,其中該第一轉態區域包含該些第一測試電壓準位中任兩個電壓準位之間的區域;以及 根據該第二軟位元資訊統計該些第一記憶胞中臨界電壓屬於一第二轉態區域之記憶胞的一總數,其中該第二轉態區域包含該些第二測試電壓準位中任兩個電壓準位之間的區域。
- 如申請專利範圍第2項所述的解碼方法,其中該第一轉態區域是該些第一測試電壓準位中電壓最大之電壓準位與該些第一測試電壓準位中電壓最小之電壓準位之間的區域, 其中該第二轉態區域是該些第二測試電壓準位中電壓最大之電壓準位與該些第二測試電壓準位中電壓最小之電壓準位之間的區域。
- 如申請專利範圍第1項所述的解碼方法,其中根據該第一軟位元資訊獲得該第一評估參數並根據該第二軟位元資訊獲得該第二評估參數之步驟包括: 根據該第一軟位元資訊統計該些第一記憶胞中臨界電壓屬於一第一穩態區域之記憶胞的一總數,其中該第一穩態區域包含該些第一測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外的區域;以及 根據該第二軟位元資訊統計該些第一記憶胞中臨界電壓屬於一第二穩態區域之記憶胞的一總數,其中該第二穩態區域包含該些第二測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外的區域。
- 如申請專利範圍第4項所述的解碼方法,其中該第一穩態區域位於該些第一測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外, 其中該第二穩態區域位於該些第二測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外。
- 如申請專利範圍第1項所述的解碼方法,其中該些第一測試電壓準位對應於一第一偏移值,其中該些第二測試電壓準位對應於一第二偏移值,其中該第一偏移值不同於該第二偏移值, 其中根據該第一評估參數與該第二評估參數更新該預設硬決策電壓準位之步驟包括: 根據該第一總數與該第二總數之間的一數值關係來更新該預設硬決策電壓準位,其中更新後的該預設硬決策電壓準位對應於該第一偏移值與該第二偏移值的其中之一。
- 如申請專利範圍第6項所述的解碼方法,更包括: 根據該第一總數與該第二總數之間的該數值關係來更新該些預設軟決策電壓準位,其中更新後的該些預設軟決策電壓準位對應於該第一偏移值與該第二偏移值的該其中之一。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,包括多個記憶胞;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以發送一第一讀取指令序列以指示基於一預設硬決策電壓準位讀取該些記憶胞中的多個第一記憶胞以獲得一硬位元資訊, 其中該記憶體控制電路單元更用以對該硬位元資訊執行一硬解碼操作, 其中若該硬解碼操作失敗,該記憶體控制電路單元更用以發送一第二讀取指令序列以指示基於多個預設軟決策電壓準位讀取該些第一記憶胞以獲得一軟位元資訊, 其中該記憶體控制電路單元更用以對該軟位元資訊執行一軟解碼操作, 其中若該軟解碼操作失敗,該記憶體控制電路單元更用以發送一第一測試指令序列以指示基於多個第一測試電壓準位讀取該些第一記憶胞以獲得一第一軟位元資訊並發送一第二測試指令序列以指示基於多個第二測試電壓準位讀取該些第一記憶胞以獲得一第二軟位元資訊, 其中該記憶體控制電路單元更用以根據該第一軟位元資訊獲得一第一評估參數並根據該第二軟位元資訊獲得一第二評估參數,其中該第一評估參數對應於該些第一記憶胞中符合一第一狀態條件之記憶胞的一第一總數,其中該第二評估參數對應於該些第一記憶胞中符合一第二狀態條件之記憶胞的一第二總數, 其中該記憶體控制電路單元更用以根據該第一評估參數與該第二評估參數更新該預設硬決策電壓準位。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該記憶體控制電路單元根據該第一軟位元資訊獲得該第一評估參數並根據該第二軟位元資訊獲得該第二評估參數之操作包括: 根據該第一軟位元資訊統計該些第一記憶胞中臨界電壓屬於一第一轉態區域之記憶胞的一總數,其中該第一轉態區域包含該些第一測試電壓準位中任兩個電壓準位之間的區域;以及 根據該第二軟位元資訊統計該些第一記憶胞中臨界電壓屬於一第二轉態區域之記憶胞的一總數,其中該第二轉態區域包含該些第二測試電壓準位中任兩個電壓準位之間的區域。
- 如申請專利範圍第9項所述的記憶體儲存裝置,其中該第一轉態區域是該些第一測試電壓準位中電壓最大之電壓準位與該些第一測試電壓準位中電壓最小之電壓準位之間的區域, 其中該第二轉態區域是該些第二測試電壓準位中電壓最大之電壓準位與該些第二測試電壓準位中電壓最小之電壓準位之間的區域。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該記憶體控制電路單元根據該第一軟位元資訊獲得該第一評估參數並根據該第二軟位元資訊獲得該第二評估參數之操作包括: 根據該第一軟位元資訊統計該些第一記憶胞中臨界電壓屬於一第一穩態區域之記憶胞的一總數,其中該第一穩態區域包含該些第一測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外的區域;以及 根據該第二軟位元資訊統計該些第一記憶胞中臨界電壓屬於一第二穩態區域之記憶胞的一總數,其中該第二穩態區域包含該些第二測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外的區域。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中該第一穩態區域位於該些第一測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外, 其中該第二穩態區域位於該些第二測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該些第一測試電壓準位對應於一第一偏移值,其中該些第二測試電壓準位對應於一第二偏移值,其中該第一偏移值不同於該第二偏移值, 其中該記憶體控制電路單元根據該第一評估參數與該第二評估參數更新該預設硬決策電壓準位之操作包括: 根據該第一總數與該第二總數之間的一數值關係來更新該預設硬決策電壓準位,其中更新後的該預設硬決策電壓準位對應於該第一偏移值與該第二偏移值的其中之一。
- 如申請專利範圍第13項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該第一總數與該第二總數之間的該數值關係來更新該些預設軟決策電壓準位,其中更新後的該些預設軟決策電壓準位對應於該第一偏移值與該第二偏移值的該其中之一。
- 一種記憶體控制電路單元,用於控制包括多個記憶胞的一可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組; 一錯誤檢查與校正電路;以及 一記憶體管理電路,耦接至該主機介面、該記憶體介面及該錯誤檢查與校正電路, 其中該記憶體管理電路用以發送一第一讀取指令序列以指示基於一預設硬決策電壓準位讀取該些記憶胞中的多個第一記憶胞以獲得一硬位元資訊, 其中該錯誤檢查與校正電路用以對該硬位元資訊執行一硬解碼操作, 其中若該硬解碼操作失敗,該記憶體管理電路更用以發送一第二讀取指令序列以指示基於多個預設軟決策電壓準位讀取該些第一記憶胞以獲得一軟位元資訊, 其中該錯誤檢查與校正電路更用以對該軟位元資訊執行一軟解碼操作, 其中若該軟解碼操作失敗,該記憶體管理電路更用以發送一第一測試指令序列以指示基於多個第一測試電壓準位讀取該些第一記憶胞以獲得一第一軟位元資訊並發送一第二測試指令序列以指示基於多個第二軟決策電壓準位讀取該些第一記憶胞以獲得一第二軟位元資訊, 其中該記憶體管理電路更用以根據該第一軟位元資訊獲得一第一評估參數並根據該第二軟位元資訊獲得一第二評估參數,其中該第一評估參數對應於該些第一記憶胞中符合一第一狀態條件之記憶胞的一第一總數,其中該第二評估參數對應於該些第一記憶胞中符合一第二狀態條件之記憶胞的一第二總數, 其中該記憶體管理電路更用以根據該第一評估參數與該第二評估參數更新該預設硬決策電壓準位。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路根據該第一軟位元資訊獲得該第一評估參數並根據該第二軟位元資訊獲得該第二評估參數之操作包括: 根據該第一軟位元資訊統計該些第一記憶胞中臨界電壓屬於一第一轉態區域之記憶胞的一總數,其中該第一轉態區域包含該些第一測試電壓準位中任兩個電壓準位之間的區域;以及 根據該第二軟位元資訊統計該些第一記憶胞中臨界電壓屬於一第二轉態區域之記憶胞的一總數,其中該第二轉態區域包含該些第二測試電壓準位中任兩個電壓準位之間的區域。
- 如申請專利範圍第16項所述的記憶體控制電路單元,其中該第一轉態區域是該些第一測試電壓準位中電壓最大之電壓準位與該些第一測試電壓準位中電壓最小之電壓準位之間的區域, 其中該第二轉態區域是該些第二測試電壓準位中電壓最大之電壓準位與該些第二測試電壓準位中電壓最小之電壓準位之間的區域。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路根據該第一軟位元資訊獲得該第一評估參數並根據該第二軟位元資訊獲得該第二評估參數之操作包括: 根據該第一軟位元資訊統計該些第一記憶胞中臨界電壓屬於一第一穩態區域之記憶胞的一總數,其中該第一穩態區域包含該些第一測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外的區域;以及 根據該第二軟位元資訊統計該些第一記憶胞中臨界電壓屬於一第二穩態區域之記憶胞的一總數,其中該第二穩態區域包含該些第二測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外的區域。
- 如申請專利範圍第18項所述的記憶體控制電路單元,其中該第一穩態區域位於該些第一測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外, 其中該第二穩態區域位於該些第二測試電壓準位中電壓最大之電壓準位與電壓最小之電壓準位之間的區域之外。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該些第一測試電壓準位對應於一第一偏移值,其中該些第二測試電壓準位對應於一第二偏移值,其中該第一偏移值不同於該第二偏移值, 其中該記憶體管理電路根據該第一評估參數與該第二評估參數更新該預設硬決策電壓準位之操作包括: 根據該第一總數與該第二總數之間的一數值關係來更新該預設硬決策電壓準位,其中更新後的該預設硬決策電壓準位對應於該第一偏移值與該第二偏移值的其中之一。
- 如申請專利範圍第20項所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該第一總數與該第二總數之間的該數值關係來更新該些預設軟決策電壓準位,其中更新後的該些預設軟決策電壓準位對應於該第一偏移值與該第二偏移值的該其中之一。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105115957A TWI584304B (zh) | 2016-05-23 | 2016-05-23 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US15/208,618 US9952926B2 (en) | 2016-05-23 | 2016-07-13 | Decoding method, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105115957A TWI584304B (zh) | 2016-05-23 | 2016-05-23 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI584304B true TWI584304B (zh) | 2017-05-21 |
TW201742067A TW201742067A (zh) | 2017-12-01 |
Family
ID=59367364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105115957A TWI584304B (zh) | 2016-05-23 | 2016-05-23 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9952926B2 (zh) |
TW (1) | TWI584304B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10339324B2 (en) * | 2016-12-22 | 2019-07-02 | Apple Inc. | Tamper-proof storage using signatures based on threshold voltage distributions |
US10469103B1 (en) * | 2017-04-19 | 2019-11-05 | Seagate Technology Llc | Adaptive read retry optimization |
TWI640865B (zh) * | 2017-09-05 | 2018-11-11 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US10679718B2 (en) * | 2017-10-04 | 2020-06-09 | Western Digital Technologies, Inc. | Error reducing matrix generation |
US10558522B2 (en) | 2017-10-20 | 2020-02-11 | Western Digital Technologies, Inc. | Dynamic multi-stage decoding |
US10637511B2 (en) * | 2017-12-18 | 2020-04-28 | Western Digital Technologies, Inc | Dynamic multi-stage decoding |
CN111863099B (zh) * | 2020-07-31 | 2023-03-21 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN112230856B (zh) * | 2020-10-20 | 2022-09-23 | 北京得瑞领新科技有限公司 | Nand硬判决参考电平偏移值的配置方法、装置及ssd设备 |
CN113393883A (zh) * | 2021-06-22 | 2021-09-14 | 武汉理工大学 | 一种nand闪存的数据读取方法、装置及nand闪存系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8145981B2 (en) * | 2007-03-31 | 2012-03-27 | Sandisk Technologies Inc. | Soft bit data transmission for error correction control in non-volatile memory |
TWI364763B (en) * | 2006-12-21 | 2012-05-21 | Univ Ramot | Soft decoding of hard and soft bits read from a flash memory |
TWI391940B (zh) * | 2007-03-31 | 2013-04-01 | Sandisk Technologies Inc | 具有錯誤修正控制之軟位元資料傳輸之非揮發性記憶體系統及其讀取方法 |
TW201337926A (zh) * | 2011-12-09 | 2013-09-16 | Sandisk Technologies Inc | 更新記憶體內讀取電壓之系統與方法 |
US8644067B2 (en) * | 2011-11-30 | 2014-02-04 | Sandisk Technologies Inc. | Systems and methods of decoding data using soft bits at a non-binary decoder that uses probabilistic decoding |
US9274891B2 (en) * | 2013-12-31 | 2016-03-01 | Phison Electronics Corp. | Decoding method, memory storage device, and memory controlling circuit unit |
US20160093372A1 (en) * | 2014-09-26 | 2016-03-31 | Sandisk Technologies Inc. | Reading resistive random access memory based on leakage current |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7616509B2 (en) * | 2007-07-13 | 2009-11-10 | Freescale Semiconductor, Inc. | Dynamic voltage adjustment for memory |
JP5361603B2 (ja) * | 2009-08-13 | 2013-12-04 | 株式会社東芝 | コントローラ |
KR101792868B1 (ko) * | 2010-11-25 | 2017-11-02 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 읽기 방법 |
US9164828B2 (en) * | 2013-09-26 | 2015-10-20 | Seagate Technology Llc | Systems and methods for enhanced data recovery in a solid state memory system |
US20150205664A1 (en) * | 2014-01-17 | 2015-07-23 | Fusion-Io, Inc. | Determining a configuration parameter using a soft read command |
KR20160102740A (ko) * | 2015-02-23 | 2016-08-31 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
KR20160102738A (ko) * | 2015-02-23 | 2016-08-31 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10320429B2 (en) * | 2015-03-04 | 2019-06-11 | Toshiba Memory Corporation | Memory controller, memory system and memory control method |
KR102265220B1 (ko) * | 2015-03-09 | 2021-06-16 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
KR20170000108A (ko) * | 2015-06-23 | 2017-01-02 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
-
2016
- 2016-05-23 TW TW105115957A patent/TWI584304B/zh active
- 2016-07-13 US US15/208,618 patent/US9952926B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI364763B (en) * | 2006-12-21 | 2012-05-21 | Univ Ramot | Soft decoding of hard and soft bits read from a flash memory |
US8145981B2 (en) * | 2007-03-31 | 2012-03-27 | Sandisk Technologies Inc. | Soft bit data transmission for error correction control in non-volatile memory |
TWI391940B (zh) * | 2007-03-31 | 2013-04-01 | Sandisk Technologies Inc | 具有錯誤修正控制之軟位元資料傳輸之非揮發性記憶體系統及其讀取方法 |
US8644067B2 (en) * | 2011-11-30 | 2014-02-04 | Sandisk Technologies Inc. | Systems and methods of decoding data using soft bits at a non-binary decoder that uses probabilistic decoding |
TW201337926A (zh) * | 2011-12-09 | 2013-09-16 | Sandisk Technologies Inc | 更新記憶體內讀取電壓之系統與方法 |
US9274891B2 (en) * | 2013-12-31 | 2016-03-01 | Phison Electronics Corp. | Decoding method, memory storage device, and memory controlling circuit unit |
US20160093372A1 (en) * | 2014-09-26 | 2016-03-31 | Sandisk Technologies Inc. | Reading resistive random access memory based on leakage current |
Also Published As
Publication number | Publication date |
---|---|
US9952926B2 (en) | 2018-04-24 |
US20170337106A1 (en) | 2017-11-23 |
TW201742067A (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI584304B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI649754B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI592869B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
US10416902B2 (en) | Memory management method for grouping physical erasing units to region corresponding to programming mode, and memory control circuit unit and memory storage device using the method | |
TWI614755B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
US10977116B2 (en) | Data access method, memory control circuit unit and memory storage device | |
TWI731338B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201913382A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI634556B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN107436820B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
TWI628543B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI670725B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI691961B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI607452B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI662553B (zh) | 記憶體測試方法與記憶體測試系統 | |
CN109697134B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN113724774B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN113140253B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI597731B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI751620B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN107025935B (zh) | 译码方法、内存储存装置及内存控制电路单元 | |
CN111459704B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI777519B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN110400593B (zh) | 存储器管理方法、存储器储存装置及存储器控制电路单元 | |
CN111863099B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 |