TWI763310B - 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI763310B TWI763310B TW110105062A TW110105062A TWI763310B TW I763310 B TWI763310 B TW I763310B TW 110105062 A TW110105062 A TW 110105062A TW 110105062 A TW110105062 A TW 110105062A TW I763310 B TWI763310 B TW I763310B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- physical
- data
- type
- memory
- Prior art date
Links
Images
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/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
- 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/44—Indication or identification of errors, e.g. for repair
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C2029/1802—Address decoder
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元。所述方法包括:對儲存於第一類實體單元中的第一資料執行單頁編碼操作,以產生本地奇偶資料;對儲存於第一類實體單元、第二類實體單元及第三類實體單元的至少其中之二中的第二資料執行全域編碼操作,以產生全域奇偶資料;響應於對該第一資料的單頁解碼操作失敗,從第一類實體單元、第二類實體單元及第三類實體單元的所述至少其中之二中讀取所述第二資料;以及根據所述全域奇偶資料對所述第二資料執行全域解碼操作。
Description
本發明是有關於一種記憶體控制技術,且特別是有關於一種記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,為了確保資料的正確性,資料會先被編碼然後再被存入可複寫式非揮發性記憶體模組中。在讀取資料時,資料會被解碼以嘗試更正其中的錯誤。若資料中的錯誤皆被更正,更正的資料才會被傳回給主機系統。然而,隨著可複寫式非揮發性記憶體模組的體積越來越小,所讀取的資料中的錯誤也越來越難被更正。
本發明的範例實施例提供一種記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元,可提高對於資料中的錯誤的更正能力。
本發明的範例實施例提供一種記憶體控制方法,其用於可複寫式非揮發性記憶體模組。所述可複寫式非揮發性記憶體模組包括多個實體單元。所述多個實體單元包括第一類實體單元、第二類實體單元及第三類實體單元。所述記憶體控制方法包括:由編碼電路對儲存於所述第一類實體單元中的第一資料執行單頁編碼操作,以產生本地奇偶資料;由所述編碼電路對儲存於所述第一類實體單元、所述第二類實體單元及所述第三類實體單元的至少其中之二中的第二資料執行全域編碼操作,以產生全域奇偶資料,其中所述第二資料包括所述第一資料;由解碼電路根據所述本地奇偶資料對所述第一資料執行單頁解碼操作;響應於所述單頁解碼操作失敗,從所述第一類實體單元、所述第二類實體單元及所述第三類實體單元的所述至少其中之二中讀取所述第二資料;以及由所述解碼電路根據所述全域奇偶資料對所述第二資料執行全域解碼操作,以更正所述第一資料中的錯誤。
在本發明的一範例實施例中,所述解碼電路是使用機率解演算法來執行所述單頁解碼操作與所述全域解碼操作。
在本發明的一範例實施例中,所述的記憶體控制方法更包括:在產生所述本地奇偶資料後,將所述本地奇偶資料儲存於所述第一類實體單元中;以及響應於所述單頁解碼操作失敗,從所述第一類實體單元讀取所述本地奇偶資料,並將所述本地奇偶資料應用於所述全域解碼操作中。
本發明的範例實施例另提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個實體單元。所述多個實體單元包括第一類實體單元、第二類實體單元及第三類實體單元。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組。所述記憶體控制電路單元用以對儲存於所述第一類實體單元中的第一資料執行單頁編碼操作,以產生本地奇偶資料。所述記憶體控制電路單元更用以對儲存於所述第一類實體單元、所述第二類實體單元及所述第三類實體單元的至少其中之二中的第二資料執行全域編碼操作,以產生全域奇偶資料,其中所述第二資料包括所述第一資料。所述記憶體控制電路單元更用以根據所述本地奇偶資料對所述第一資料執行單頁解碼操作。響應於所述單頁解碼操作失敗,所述記憶體控制電路單元更用以從所述第一類實體單元、所述第二類實體單元及所述第三類實體單元的所述至少其中之二中讀取所述第二資料。所述記憶體控制電路單元更用以根據所述全域奇偶資料對所述第二資料執行全域解碼操作,以更正所述第一資料中的錯誤。
在本發明的一範例實施例中,所述記憶體控制電路單元是使用機率解演算法來執行所述單頁解碼操作與所述全域解碼操作。
在本發明的一範例實施例中,在產生所述本地奇偶資料後,所述記憶體控制電路單元更用以將所述本地奇偶資料儲存於所述第一類實體單元中。響應於所述單頁解碼操作失敗,所述記憶體控制電路單元更用從所述第一類實體單元讀取所述本地奇偶資料,並將所述本地奇偶資料應用於所述全域解碼操作中。
本發明的範例實施例另提供一種記憶體控制電路單元,其用於控制可複寫式非揮發性記憶體模組。所述可複寫式非揮發性記憶體模組包括多個實體單元。所述多個實體單元包括第一類實體單元、第二類實體單元及第三類實體單元。所述記憶體控制電路單元包括主機介面、記憶體介面、錯誤檢查與校正電路及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面、所述記憶體介面、及所述錯誤檢查與校正電路。所述錯誤檢查與校正電路用以對儲存於所述第一類實體單元中的第一資料執行單頁編碼操作,以產生本地奇偶資料。所述錯誤檢查與校正電路更用以對儲存於所述第一類實體單元、所述第二類實體單元及所述第三類實體單元的至少其中之二中的第二資料執行全域編碼操作,以產生全域奇偶資料,其中所述第二資料包括所述第一資料。所述錯誤檢查與校正電路更用以根據所述本地奇偶資料對所述第一資料執行單頁解碼操作。響應於所述單頁解碼操作失敗,所述記憶體管理電路用以從所述第一類實體單元、所述第二類實體單元及所述第三類實體單元的所述至少其中之二中讀取所述第二資料。所述錯誤檢查與校正電路更用以根據所述全域奇偶資料對所述第二資料執行全域解碼操作,以更正所述第一資料中的錯誤。
在本發明的一範例實施例中,所述錯誤檢查與校正電路是使用機率解演算法來執行所述單頁解碼操作與所述全域解碼操作。
在本發明的一範例實施例中,所述第一類實體單元屬於下實體程式化單元、中實體程式化單元及上實體程式化單元的其中之一。所述第二類實體單元屬於所述下實體程式化單元、所述中實體程式化單元及所述上實體程式化單元的其中之另一。所述第三類實體單元屬於所述下實體程式化單元、所述中實體程式化單元及所述上實體程式化單元的其中之又一。
在本發明的一範例實施例中,所述下實體程式化單元是用以儲存多個第一記憶胞的最低有效位元,所述中實體程式化單元是用以儲存所述多個第一記憶胞的中間有效位元,並且所述上實體程式化單元是用以儲存所述多個第一記憶胞的最高有效位元。
在本發明的一範例實施例中,所述第一類實體單元、所述第二類實體單元及所述第三類實體單元的所述至少其中之二包含所述上實體程式化單元與所述中實體程式化單元且不包含所述下實體程式化單元。
在本發明的一範例實施例中,所述第一類實體單元、所述第二類實體單元及所述第三類實體單元的所述至少其中之二包含所述上實體程式化單元、所述中實體程式化單元及所述下實體程式化單元。
在本發明的一範例實施例中,在產生所述本地奇偶資料後,所述記憶體管理電路更用以將所述本地奇偶資料儲存於所述第一類實體單元中。響應於所述單頁解碼操作失敗,所述記憶體管理電路更用以從所述第一類實體單元讀取所述本地奇偶資料,並將所述本地奇偶資料應用於所述全域解碼操作中。
基於上述,可複寫式非揮發性記憶體模組中的實體單元可包括第一類實體單元、第二類實體單元及第三類實體單元。在編碼資料時,編碼電路可對儲存於第一類實體單元中的第一資料執行單頁編碼操作,以產生本地奇偶資料。此外,所述編碼電路也可對儲存於所述第一類實體單元、第二類實體單元及第三類實體單元的至少其中之二中的第二資料執行全域編碼操作,以產生全域奇偶資料,其中所述第二資料包括所述第一資料。在解碼資料時,解碼電路可根據所述本地奇偶資料對所述第一資料執行單頁解碼操作。響應於所述單頁解碼操作失敗,所述第二資料可從所述第一類實體單元、所述第二類實體單元及所述第三類實體單元的所述至少其中之二中讀取出來。接著,所述解碼電路可根據所述全域奇偶資料對所述第二資料執行全域解碼操作,以更正所述第一資料中的錯誤。藉此,可提高對於儲存於可複寫式非揮發性記憶體模組中的資料中的錯誤的更正能力。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(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 Multi Media Card, eMMC)341及/或嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)儲存裝置342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
連接介面單元402用以將記憶體儲存裝置10耦接至主機系統11。記憶體儲存裝置10可透過連接介面單元402與主機系統11通訊。在本範例實施例中,連接介面單元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)介面標準、MCP介面標準、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個位元的快閃記憶體模組)、四階記憶胞(Quad Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存4個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變記憶胞之臨界電壓的操作亦稱為“把資料寫入至記憶胞”或“程式化(programming)記憶胞”。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組406中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
在一範例實施例中,可複寫式非揮發性記憶體模組406的記憶胞可構成多個實體程式化單元,並且此些實體程式化單元可構成多個實體抹除單元。具體來說,同一條字元線或同一個字元線平面上的記憶胞可組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線或同一個字元線平面上的實體程式化單元可至少可被分類為下實體程式化單元與上實體程式化單元。一般來說,下實體程式化單元的寫入速度可大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度可高於上實體程式化單元的可靠度。
在一範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元可為實體頁面(page)或是實體扇(sector)。若實體程式化單元為實體頁面,則此些實體程式化單元可包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體扇,用以儲存使用者資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼等管理資料)。在本範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte, B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,並且每一個實體扇的大小也可以是更大或更小。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊(block)。
圖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。記憶體管理電路502可透過主機介面504與主機系統11通訊。主機介面504可用以接收與識別主機系統11所傳送的指令與資料。例如,主機系統11所傳送的指令與資料可透過主機介面504來傳送至記憶體管理電路502。此外,記憶體管理電路502可透過主機介面504將資料傳送至主機系統11。在本範例實施例中,主機介面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會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正操作。
在一範例實施例中,記憶體控制電路單元404還包括電源管理電路512與緩衝記憶體510。電源管理電路512是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。緩衝記憶體510是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。
在一範例實施例中,圖4的可複寫式非揮發性記憶體模組406亦稱為快閃記憶體模組,記憶體控制電路單元404亦稱為用於控制快閃記憶體模組的快閃記憶體控制器,及/或圖5的記憶體管理電路502亦稱為快閃記憶體管理電路。
圖6是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。請參照圖6,記憶體管理電路502會將可複寫式非揮發性記憶體模組406的實體單元610(0)~610(B)邏輯地分組至儲存區601與替換區602。儲存區601中的實體單元610(0)~610(A)是用以儲存資料,而替換區602中的實體單元610(A+1)~610(B)則是用以替換儲存區601中損壞的實體單元。例如,若從某一個實體單元中讀取的資料所包含的錯誤過多而無法被更正時,此實體單元會被視為是損壞的實體單元。須注意的是,若替換區602中沒有可用的實體抹除單元,則記憶體管理電路502可能會將整個記憶體儲存裝置10宣告為寫入保護(write protect)狀態,而無法再寫入資料。
在本範例實施例中,每一個實體單元是指一個實體程式化單元。然而,在另一範例實施例中,一個實體單元亦可以是指一個實體位址、一個實體抹除單元或由多個連續或不連續的實體位址組成。記憶體管理電路502會配置邏輯單元612(0)~612(C)以映射儲存區601中的實體單元610(0)~610(A)。在本範例實施例中,每一個邏輯單元是指一個邏輯位址。然而,在另一範例實施例中,一個邏輯單元也可以是指一個邏輯程式化單元、一個邏輯抹除單元或者由多個連續或不連續的邏輯位址組成。此外,邏輯單元612(0)~612(C)中的每一者可被映射至一或多個實體單元。
記憶體管理電路502可將邏輯單元與實體單元之間的映射關係(亦稱為邏輯-實體位址映射關係)記錄於至少一邏輯-實體位址映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路502可根據此邏輯-實體位址映射表來執行對於記憶體儲存裝置10的資料存取操作。
圖7是根據本發明的一範例實施例所繪示的記憶胞的臨界電壓分布的示意圖。請參照圖7,以TLC NAND型快閃記憶體模組為例,可複寫式非揮發性記憶體模組406中的一個記憶胞可儲存3個位元。例如,一個記憶胞可儲存的3個位元包括最低有效位元(least significant bit, LSB)、中間有效位元(center significant bit, CSB)及最高有效位元(Most significant bit, MSB)。以圖7為例,假設經程式化的記憶胞的臨界電壓分布包括狀態701~708(或狀態Er~G),則臨界電壓分別屬於狀態701~708(或狀態Er~G)的記憶胞所儲存的3個位元(即LSB、CSB及MSB)為“000”、“001”、“010”、“011”、“100”、“101”、“110”及“111”。
須注意的是,在不同範例實施例中,每一個狀態所對應的位元組合可以不同,視實務需求而定。例如,在一範例實施例中,臨界電壓分別屬於狀態701~708(或狀態Er~G)的記憶胞所儲存的3個位元(即LSB、CSB及MSB)可為“111”、“110”、“101”、“100”、“011”、“010”、“001”及“000”。此外,若一個記憶胞可儲存其他數量的位元(例如1、2或4個位元),則記憶胞的臨界電壓分布所包含的狀態之總數也可能改變,視實務需求而定。
在一範例實施例中,若某一實體單元是用以儲存多個記憶胞的LSB,則此實體單元亦稱為下實體程式化單元。在一範例實施例中,若某一實體單元是用以儲存多個記憶胞的CSB,則此實體單元亦稱為中實體程式化單元。在一範例實施例中,若某一實體單元是用以儲存多個記憶胞的MSB,則此實體單元亦稱為上實體程式化單元。
在一範例實施例中,錯誤檢查與校正電路508可包括編碼電路與解碼電路。編碼電路可用以對資料進行編碼。例如,編碼電路可採用低密度奇偶檢查校正碼(low density parity code,LDPC)或渦輪碼(turbo code)等編碼演算法的至少其中之一來編碼資料。解碼電路可用以對資料進行解碼。例如,解碼電路亦可採用LDPC或渦輪碼等解碼演算法的至少其中之一來解碼資料。
須注意的是,前述LDPC或渦輪碼等編解碼演算法皆屬於機率解演算法,非保證解演算法。例如,常見的保證解演算法可包括互斥或(Exclusive-OR, XOR)與里德-所羅門碼(Reed-solomon codes, RS code)演算法。
一般來說,機率解演算法可以在數目較多的錯誤位元(例如10個以上的錯誤位元)中,以機率的概念來判定其中某一個錯誤位元的值實際上應該是“0”或“1”。例如,若某一個錯誤位元的值有較高的機率是“1”,則錯誤檢查與校正電路508可將此錯誤位元的值更正為“1”。反之,若某一個錯誤位元的值有較高的機率是“0”,則錯誤檢查與校正電路508可將此錯誤位元的值更正為“0”。然而,保證解演算法則是可以在數目較少的錯誤位元(例如1至2個錯誤位元)中,明確的判定(即保證)其中某一個錯誤位元的值是“0”或“1”。
在一範例實施例中,錯誤檢查與校正電路508可對儲存於第一類實體單元中的資料(亦稱為第一資料)執行編碼操作(亦稱為單頁編碼操作),以產生奇偶資料(亦稱為本地奇偶資料)。例如,錯誤檢查與校正電路508可使用前述機率解演算法(例如LDPC演算法)來執行此單頁編碼操作。所產生的本地奇偶資料可用以保護此第一資料並可儲存於可複寫式非揮發性記憶體模組406中的某一個實體單元。例如,本地奇偶資料可與相應的第一資料儲存於同一個實體單元或另一個實體單元,本發明不加以限制。
在一範例實施例中,錯誤檢查與校正電路508可對儲存於第一類實體單元、第二類實體單元及第三類實體單元的至少其中之二中的資料(亦稱為第二資料)執行另一編碼操作(亦稱為全域編碼操作),以產生奇偶資料(亦稱為全域奇偶資料)。第二資料包括第一資料。例如,錯誤檢查與校正電路508可使用前述機率解演算法(例如LDPC演算法)來執行此全域編碼操作。所產生的全域奇偶資料可用以保護此第二資料並可儲存於可複寫式非揮發性記憶體模組406中的某一個實體單元。
在一範例實施例中,第一類實體單元可以是屬於前述下實體程式化單元、中實體程式化單元及上實體程式化單元的其中之一。第二類實體單元可以是屬於前述下實體程式化單元、中實體程式化單元及上實體程式化單元的其中之另一。第三類實體單元可以是屬於前述下實體程式化單元、中實體程式化單元及上實體程式化單元的其中之又一。例如,假設第一類實體單元為下實體程式化單元,則第二類實體單元與第三類實體單元可分別為中實體程式化單元與上實體程式化單元。或者,假設第一類實體單元為中實體程式化單元,則第二類實體單元與第三類實體單元可分別為下實體程式化單元與上實體程式化單元。或者,假設第一類實體單元為上實體程式化單元,則第二類實體單元與第三類實體單元可分別為中實體程式化單元與下實體程式化單元。
在一範例實施例中,當從第一類實體單元讀取出所述第一資料時,錯誤檢查與校正電路508可根據所述本地奇偶資料對所述第一資料執行一單解碼操作(亦稱為單頁解碼操作)。此單頁解碼操作可嘗試更正所述第一資料中可能存在的錯誤。若此單頁解碼操作成功(即錯誤檢查與校正電路508成功更正第一資料中的所有錯誤),則記憶體管理電路502可輸出解碼成功的資料。例如,記憶體管理電路502可將解碼成功的第一資料傳送給主機系統11,以回應主機系統11的讀取請求。然而,若錯誤檢查與校正電路508無法成功更正第一資料中的所有錯誤,則記憶體管理電路502可判定此單頁解碼操作失敗。
在一範例實施例中,響應於此單頁解碼操作失敗,記憶體管理電路502可從前述第一類實體單元、第二類實體單元及第三類實體單元的至少其中之二中讀取所述第二資料。錯誤檢查與校正電路508可根據所述全域奇偶資料對所述第二資料執行解碼操作(亦稱為全域解碼操作),以嘗試再次更正第一資料中的錯誤。
圖8是根據本發明的一範例實施例所繪示的編碼操作的示意圖。請參照圖8,假設實體單元801~803分別用以儲存資料D(1)~D(3)。資料D(1)~D(3)分別屬於多個記憶胞(亦稱為第一記憶胞)的LSB、CSB及MSB。在儲存資料D(1)~D(3)時,錯誤檢查與校正電路508可對資料D(1)~D(3)分別執行單頁編碼操作,以產生奇偶資料P(1)~P(3)。奇偶資料P(1)~P(3)皆為本地奇偶資料且分別用以保護資料D(1)~D(3)。此外,奇偶資料P(1)~P(3)可分別儲存於實體單元801~803中。例如,奇偶資料P(1)~P(3)可分別儲存於實體單元801~803中的冗餘位元區。
在產生奇偶資料P(1)~P(3)之後,錯誤檢查與校正電路508可進一步對資料810執行全域編碼操作,以產生奇偶資料P(G0)。資料810可包含資料D(1)~D(3)及奇偶資料P(1)~P(3)。奇偶資料P(G0)即為全域奇偶資料並可用於同時保護資料810。奇偶資料P(G0)可儲存於某一實體單元中。
爾後,在讀取資料D(1)~D(3)中的某一資料(例如資料D(1))時,奇偶資料P(1)可被同時讀取。錯誤檢查與校正電路508可根據奇偶資料P(1)對資料D(1)執行單頁解碼操作,以嘗試更正資料D(1)中的錯誤。若資料D(1)解碼成功,則解碼成功的資料D(1)可被輸出。然而,若資料D(1)解碼失敗,則資料D(2)與D(3)以及奇偶資料P(2)與P(3)可接續被讀取以獲得包含資料D(1)的資料810。錯誤檢查與校正電路508可根據奇偶資料P(G0)來解碼資料810,以嘗試利用更多的資訊來更正資料D(1)中的錯誤。同理,當資料D(2)及/或D(3)的單頁解碼操作失敗時,奇偶資料P(G0)也可用以更正資料D(2)及/或D(3)中的錯誤。
須注意的是,在圖8的範例實施例中,參與全域編碼的資料810(例如資料D(1)~D(3))皆是儲存於相同的記憶胞(即第一記憶胞)中。例如,實體單元801、802及803皆位於同一條字元線或字元線平面上。然而,在另一範例實施例中,參與全域編碼的資料亦可以是儲存於不同的記憶胞中。
圖9A是根據本發明的一範例實施例所繪示的編碼操作的示意圖。請參照圖9A,假設實體單元801~803分別用以儲存資料D(1)~D(3)。資料D(1)~D(3)分別屬於多個記憶胞(即第一記憶胞)的LSB、CSB及MSB。在儲存資料D(1)~D(3)時,錯誤檢查與校正電路508可對資料D(1)~D(3)分別執行單頁編碼操作,以產生奇偶資料P(1)~P(3)。此外,實體單元901~903分別用以儲存資料D(i)~D(i+2)。資料D(i)~D(i+2)分別屬於多個記憶胞(亦稱為第二記憶胞)的LSB、CSB及MSB。須注意的是,第二記憶胞不屬於第一記憶胞。例如,實體單元801~803可位於某一條字元線或字元線平面上,而實體單元901~903則可位於另一條字元線或字元線平面上。在儲存資料D(i)~D(i+2)時,錯誤檢查與校正電路508可對資料D(i)~D(i+2)分別執行單頁編碼操作,以產生奇偶資料P(i)~P(i+2)。
在產生奇偶資料P(1)~P(3)及P(i)~P(i+2)之後,錯誤檢查與校正電路508可進一步對資料910執行全域編碼操作,以產生奇偶資料P(G1)。資料910可包含資料D(1)~D(3)、D(i)~D(i+2)及奇偶資料P(1)~P(3)、P(i)~P(i+2)。奇偶資料P(G1)可儲存於某一實體單元中。
爾後,在讀取資料D(1)~D(3)及D(i)~D(i+2)中的某一資料(例如資料D(1))時,奇偶資料P(1)可被同時讀取。錯誤檢查與校正電路508可根據奇偶資料P(1)對資料D(1)執行單頁解碼操作,以嘗試更正資料D(1)中的錯誤。若資料D(1)解碼成功,則解碼成功的資料D(1)可被輸出。然而,若資料D(1)解碼失敗,則資料D(2)、D(3)、D(i)~D(i+2)及奇偶資料P(2)、P(3)、P(i)~P(i+2)可接續被讀取以獲得包含資料D(1)的資料910。錯誤檢查與校正電路508可根據奇偶資料P(G1)來解碼資料910,以嘗試利用更多的資訊來更正資料D(1)中的錯誤。同理,當對於資料D(2)、D(3)及D(i)~D(i+2)中任一者的單頁解碼操作失敗時,奇偶資料P(G1)也可用以更正資料D(2)、D(3)及D(i)~D(i+2)中的錯誤。
須注意的是,在一範例實施例中,奇偶資料P(1)可參與對於資料D(1)的單頁解碼操作以及對於資料810(或910)的全域解碼操作。例如。在執行對於資料D(1)的單頁解碼操作時,奇偶資料P(1)可從實體單元801中讀取出來並應用於對於資料D(1)的單頁解碼操作中。在執行對於資料D(1)的單頁解碼操作後,響應於資料D(1)的單頁解碼操作失敗,奇偶資料P(1)可再次從實體單元801中讀取出來並應用於對於810(或910)的全域解碼操作中。
須注意的是,在一範例實施例中,用於產生全域奇偶資料P(G0)(或P(G1))的資料810(或910)亦可不包含本地奇偶資料P(1)~P(3)(或P(1)~P(3)與P(i)~P(i+2))。或者,在一範例實施例中,亦可以僅根據特定類型的實體單元(例如上實體程式化單元與中實體程式化單元)所儲存的資料來產生全域奇偶資料,而略過某些類型的實體單元(例如下實體程式化單元)所儲存的資料。
在一範例實施例中,在全域編碼操作中,錯誤檢查與校正電路508可只針對上實體程式化單元與中實體程式化單元中的資料(例如圖8中的D(2)與D(3)或圖9A中的D(2)、D(3)、D(i+1)及D(i+2))進行全域編碼(即不對下實體程式化單元中的資料進行全域編碼),以產生全域奇偶資料(例如P(G0)或P(G1))。一般來說,儲存於上實體程式化單元與中實體程式化單元中的資料包含錯誤位元的機率高於儲存於下實體程式化單元中的資料包含錯誤位元的機率。因此,在一範例實施例中,只針對上實體程式化單元與中實體程式化單元中的資料進行全域編碼,可在不大幅增加編/解碼負擔的前提下,有效提高對上實體程式化單元與中實體程式化單元中的資料的保護能力(或錯誤更正能力)。
在一範例實施例中,在全域編碼操作中,錯誤檢查與校正電路508可針對上實體程式化單元、中實體程式化單元及下實體程式化單元中的資料(例如圖8中的D(1)~D(3)或圖9A中的D(1)~D(3)及D(i)~D(i+2))進行全域編碼,以產生全域奇偶資料(例如P(G0)或P(G1))。藉此,雖然系統的編/解碼負擔可能會增加,但對於記憶胞中的所有資料的保護能力(或錯誤更正能力)都可以明顯提升。
在一範例實施例中,錯誤檢查與校正電路508可使用同一個奇偶檢查(parity check)矩陣H來執行單頁及全域的編/解碼操作。例如,當執行單頁編/解碼操作時,錯誤檢查與校正電路508可使用此奇偶檢查矩陣H中的一部分的子矩陣H1(1)~H1(n)來對單頁資料進行編碼以產生本地奇偶資料或對所讀取的單頁資料執行解碼。爾後,當執行全域編/解碼操作時,錯誤檢查與校正電路508可使用此奇偶檢查矩陣H中的另一部分的子矩陣H2來對全域資料進行編碼以產生全域奇偶資料或對所讀取的全域資料執行解碼。須注意的是,所述全域資料是指包含多筆單頁資料的資料,例如圖8中的資料810或圖9中的資料910。
圖9B是根據本發明的一範例實施例所繪示的奇偶檢查矩陣的示意圖。請參照圖9B,奇偶檢查矩陣H可包含子矩陣H1(1)~H1(n)及H2。在單頁編碼操作中,奇偶檢查矩陣H中的子矩陣H1(1)~H1(n)可分別參與n個單頁資料的編碼以產生n個本地奇偶資料。在全域編碼操作中,奇偶檢查矩陣H中的子矩陣H2可參與所述n個單頁資料的共同編碼(即全域編碼)以產生全域奇偶資料。以圖9A為例,在單頁編碼操作中,n個單頁資料中的單頁資料D(i)中的多個資料位元可與子矩陣H1(1)~H1(n)中的子矩陣H1(i)相乘,以產生對應於單頁資料D(i)的奇偶資料P(i)。在全域編碼操作中,包含所述n個單頁資料的資料910可與子矩陣H2相乘,以產生奇偶資料P(G1)。
在單頁解碼操作中,奇偶檢查矩陣H中的子矩陣H1(1)~H1(n)可分別參與n個單頁資料的解碼。在全域解碼操作中,奇偶檢查矩陣H中的子矩陣H2可參與所述n個單頁資料的共同解碼(即全域解碼)。以圖9A為例,在單頁解碼操作中,子矩陣H1(1)~H1(n)中的子矩陣H1(i)可與n個單頁資料中的單頁資料D(i)中的多個資料位元相乘。運算結果可應用於單頁解碼操作中。在全域解碼操作中,子矩陣H2可與包含所述n個單頁資料的資料910相乘。運算結果可應用於全域解碼操作中。
在一範例實施例中,錯誤檢查與校正電路508中的編/解碼電路可根據前述奇偶檢查矩陣H來進行配置。因此,錯誤檢查與校正電路508可根據同一個奇偶檢查矩陣H及/或使用同一個編/解碼電路來在不同的時間點執行資料的單頁編碼操作、全域編碼操作、單頁解碼操作、全域解碼操作的其中之一,從而減少錯誤檢查與校正電路508的電路配置空間及/或電路複雜度。
圖10是根據本發明的一範例實施例所繪示的記憶體控制方法的流程圖。請參照圖10,在步驟S1001中,由編碼電路對儲存於第一類實體單元中的第一資料執行單頁編碼操作,以產生本地奇偶資料。在步驟S1002中,由所述編碼電路對儲存於第一類實體單元、第二類實體單元及第三類實體單元的至少其中之二中的第二資料執行全域編碼操作,以產生全域奇偶資料,其中所述第二資料包括所述第一資料。在步驟S1003中,由解碼電路根據所述本地奇偶資料對所述第一資料執行單頁解碼操作。在步驟S1004中,響應於所述單頁解碼操作失敗,從所述第一類實體單元、所述第二類實體單元及所述第三類實體單元的所述至少其中之二中讀取所述第二資料。在步驟S1005中,由所述解碼電路根據所述全域奇偶資料對所述第二資料執行全域解碼操作,以更正所述第一資料中的錯誤。
圖11是根據本發明的一範例實施例所繪示的記憶體控制方法的流程圖。請參照圖11,在步驟S1101中,獲得儲存於預設的多個實體單元中的某一實體單元中的資料。例如,此資料可來自主機系統且即將被儲存至所述實體單元。在步驟S1102中,由編碼電路對所述資料執行單頁編碼操作,以產生本地奇偶資料。在步驟S1103中,判斷是否已完成所述多個實體單元中的所有資料的單頁編碼。若否,步驟S1101與S1102可被重複執行。若是,表示預設的多個實體單元中的所有資料皆已完成單頁編碼。因此,在步驟S1104中,可獲得欲參與全域編碼的其他實體單元所儲存的資料(即獲得預設的多個實體單元中的所有資料)。在步驟S1105中,由編碼電路對所有資料執行全域編碼操作,以產生全域奇偶資料。
圖12是根據本發明的一範例實施例所繪示的記憶體控制方法的流程圖。請參照圖12,在步驟S1201中,從某一實體單元中讀取資料。在步驟S1202中,對所述資料執行單頁解碼操作。在步驟S1203中,判斷是否解碼成功。若是,在步驟S1204中,可輸出解碼成功的資料。若否,表示對所述資料執行單頁解碼操作失敗。因此,在步驟S1205中,可從其他實體單元中讀取資料。例如,此些資料過去曾經被共同編碼以產生共用的全域奇偶資料。在步驟S1206中,可根據所述全域奇偶資執行全域解碼操作,以嘗試更正所述資料中的錯誤。
在一實施例中,步驟S1202中對於同一資料的單頁解碼操作可被重複執行數次,以持續地嘗試更正所述資料中的錯誤。在一實施例中,當對於同一資料的單頁解碼操作的執行次數超過一預設次數時,才進入步驟S1205與S1206,以進一步利用全域解碼操作來更正所述資料中的錯誤。
然而,圖10至圖12中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖10至圖12中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖10至圖12的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,在解碼資料時,可先對此資料執行單頁解碼。若無法成功解碼此資料,可進一步對此資料執行全域解碼,以使用更多資訊來嘗試更正此資料中的錯誤。藉此,可有效提高錯誤率較高的資料的解碼成功率。此外,透過使用相同的奇偶檢查矩陣來執行單頁編/解碼以及全域編/解碼操作,可有效減少編/解碼電路的電路配置空間及/或電路複雜度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10,30:記憶體儲存裝置
11,31:主機系統
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,801~803,901~903:實體單元
612(0)~612(C):邏輯單元
701~708:狀態
D(1)~D(3),D(i)~D(i+2),810,910:資料
P(1)~P(3),P(i)~P(i+2),P(G0),P(G1):奇偶資料
H:奇偶檢查矩陣
H1(0)~H1(n),H2:奇偶檢查矩陣的子矩陣
S1001:步驟(由編碼電路對儲存於第一類實體單元中的第一資料執行單頁編碼操作,以產生本地奇偶資料)
S1002:步驟(由所述編碼電路對儲存於第一類實體單元、第二類實體單元及第三類實體單元的至少其中之二中的第二資料執行全域編碼操作,以產生全域奇偶資料)
S1003:步驟(由解碼電路根據所述本地奇偶資料對所述第一資料執行單頁解碼操作)
S1004:步驟(響應於所述單頁解碼操作失敗,從所述第一類實體單元、所述第二類實體單元及所述第三類實體單元的所述至少其中之二中讀取所述第二資料)
S1005:步驟(由所述解碼電路根據所述全域奇偶資料對所述第二資料執行全域解碼操作,以更正所述第一資料中的錯誤)
S1101:步驟(獲得儲存於某一實體單元中的資料)
S1102:步驟(編碼電路對所述資料執行單頁編碼操作,以產生本地奇偶資料)
S1103:步驟(是否已完成所有單頁編碼)
S1104:步驟(獲得儲存於其他實體單元中的資料)
S1105:步驟(由編碼電路對所有資料執行全域編碼操作,以產生全域奇偶資料)
S1201:步驟(某一實體單元中讀取資料)
S1202:步驟(對所述資料執行單頁解碼操作)
S1203:步驟(是否解碼成功)
S1204:步驟(輸出解碼成功的資料)
S1205:步驟(從其他實體單元中讀取資料)
S1206:步驟(根據全域奇偶資執行全域解碼操作)
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
圖6是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
圖7是根據本發明的一範例實施例所繪示的記憶胞的臨界電壓分布的示意圖。
圖8是根據本發明的一範例實施例所繪示的編碼操作的示意圖。
圖9A是根據本發明的一範例實施例所繪示的編碼操作的示意圖。
圖9B是根據本發明的一範例實施例所繪示的奇偶檢查矩陣的示意圖。
圖10是根據本發明的一範例實施例所繪示的記憶體控制方法的流程圖。
圖11是根據本發明的一範例實施例所繪示的記憶體控制方法的流程圖。
圖12是根據本發明的一範例實施例所繪示的記憶體控制方法的流程圖。
S1001:步驟(由編碼電路對儲存於第一類實體單元中的第一資料執行單頁編碼操作,以產生本地奇偶資料)
S1002:步驟(由所述編碼電路對儲存於第一類實體單元、第二類實體單元及第三類實體單元的至少其中之二中的第二資料執行全域編碼操作,以產生全域奇偶資料)
S1003:步驟(由解碼電路根據所述本地奇偶資料對所述第一資料執行單頁解碼操作)
S1004:步驟(響應於所述單頁解碼操作失敗,從所述第一類實體單元、所述第二類實體單元及所述第三類實體單元的所述至少其中之二中讀取所述第二資料)
S1005:步驟(由所述解碼電路根據所述全域奇偶資料對所述第二資料執行全域解碼操作,以更正所述第一資料中的錯誤)
Claims (21)
- 一種記憶體控制方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體單元,該多個實體單元包括一第一類實體單元、一第二類實體單元及一第三類實體單元,且該記憶體控制方法包括:由一編碼電路對儲存於該第一類實體單元中的一第一資料執行一單頁編碼操作,以產生一本地奇偶資料;由該編碼電路對第二資料執行一全域編碼操作,以產生一全域奇偶資料,其中該第二資料包括儲存於該第一類實體單元中的該第一資料以及儲存於該第二類實體單元與該第三類實體單元的至少其中之一中的一第三資料;由一解碼電路根據該本地奇偶資料對該第一資料執行一單頁解碼操作;響應於該單頁解碼操作失敗,從該第一類實體單元、該第二類實體單元及該第三類實體單元的至少其中之二中讀取該第二資料;以及由該解碼電路根據該全域奇偶資料對該第二資料執行一全域解碼操作,以更正該第一資料中的錯誤。
- 如請求項1所述的記憶體控制方法,其中該解碼電路是使用一機率解演算法來執行該單頁解碼操作與該全域解碼操作。
- 如請求項1所述的記憶體控制方法,其中該第一類實體單元屬於一下實體程式化單元、一中實體程式化單元及一上實體程式化單元的其中之一,該第二類實體單元屬於該下實體程式化單元、該中實體程式化單元及該上實體程式化單元的其中之另一,並且該第三類實體單元屬於該下實體程式化單元、該中實體程式化單元及該上實體程式化單元的其中之又一。
- 如請求項3所述的記憶體控制方法,其中該下實體程式化單元是用以儲存多個第一記憶胞的最低有效位元,該中實體程式化單元是用以儲存該多個第一記憶胞的中間有效位元,並且該上實體程式化單元是用以儲存該多個第一記憶胞的最高有效位元。
- 如請求項3所述的記憶體控制方法,其中該第一類實體單元、該第二類實體單元及該第三類實體單元的該至少其中之二包含該上實體程式化單元與該中實體程式化單元且不包含該下實體程式化單元。
- 如請求項3所述的記憶體控制方法,其中該第一類實體單元、該第二類實體單元及該第三類實體單元的該至少其中之二包含該上實體程式化單元、該中實體程式化單元及該下實體程式化單元。
- 如請求項1所述的記憶體控制方法,更包括:在產生該本地奇偶資料後,將該本地奇偶資料儲存於該第一 類實體單元中;以及響應於該單頁解碼操作失敗,從該第一類實體單元讀取該本地奇偶資料,並將該本地奇偶資料應用於該全域解碼操作中。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體單元,且該多個實體單元包括一第一類實體單元、一第二類實體單元及一第三類實體單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以對儲存於該第一類實體單元中的一第一資料執行一單頁編碼操作,以產生一本地奇偶資料,該記憶體控制電路單元更用以對第二資料執行一全域編碼操作,以產生一全域奇偶資料,其中該第二資料包括儲存於該第一類實體單元中的該第一資料以及儲存於該第二類實體單元與該第三類實體單元的至少其中之一中的一第三資料,該記憶體控制電路單元更用以根據該本地奇偶資料對該第一資料執行一單頁解碼操作,響應於該單頁解碼操作失敗,該記憶體控制電路單元更用以從該第一類實體單元、該第二類實體單元及該第三類實體單元的至少其中之二中讀取該第二資料,並且該記憶體控制電路單元更用以根據該全域奇偶資料對該第二 資料執行一全域解碼操作,以更正該第一資料中的錯誤。
- 如請求項8所述的記憶體儲存裝置,其中該記憶體控制電路單元是使用一機率解演算法來執行該單頁解碼操作與該全域解碼操作。
- 如請求項8所述的記憶體儲存裝置,其中該第一類實體單元屬於一下實體程式化單元、一中實體程式化單元及一上實體程式化單元的其中之一,該第二類實體單元屬於該下實體程式化單元、該中實體程式化單元及該上實體程式化單元的其中之另一,並且該第三類實體單元屬於該下實體程式化單元、該中實體程式化單元及該上實體程式化單元的其中之又一。
- 如請求項10所述的記憶體儲存裝置,其中該下實體程式化單元是用以儲存多個第一記憶胞的最低有效位元,該中實體程式化單元是用以儲存該多個第一記憶胞的中間有效位元,並且該上實體程式化單元是用以儲存該多個第一記憶胞的最高有效位元。
- 如請求項10所述的記憶體儲存裝置,其中該第一類實體單元、該第二類實體單元及該第三類實體單元的該至少其中之二包含該上實體程式化單元與該中實體程式化單元且不包含該下實體程式化單元。
- 如請求項10所述的記憶體儲存裝置,其中該第一類實體單元、該第二類實體單元及該第三類實體單元的該至少其 中之二包含該上實體程式化單元、該中實體程式化單元及該下實體程式化單元。
- 如請求項8所述的記憶體儲存裝置,其中在產生該本地奇偶資料後,該記憶體控制電路單元更用以將該本地奇偶資料儲存於該第一類實體單元中,並且響應於該單頁解碼操作失敗,該記憶體控制電路單元更用從該第一類實體單元讀取該本地奇偶資料,並將該本地奇偶資料應用於該全域解碼操作中。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體單元,該多個實體單元包括一第一類實體單元、一第二類實體單元及一第三類實體單元,且該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一錯誤檢查與校正電路;以及一記憶體管理電路,耦接至該主機介面、該記憶體介面、及該錯誤檢查與校正電路,其中該錯誤檢查與校正電路用以對儲存於該第一類實體單元中的一第一資料執行一單頁編碼操作,以產生一本地奇偶資料,該錯誤檢查與校正電路更用以對第二資料執行一全域編碼操作,以產生一全域奇偶資料,其中該第二資料包括儲存於該第一類實體單元中的該第一資料以及儲存於該第二類實體單元與該第 三類實體單元的至少其中之一中的一第三資料,該錯誤檢查與校正電路更用以根據該本地奇偶資料對該第一資料執行一單頁解碼操作,響應於該單頁解碼操作失敗,該記憶體管理電路用以從該第一類實體單元、該第二類實體單元及該第三類實體單元的至少其中之二中讀取該第二資料,並且該錯誤檢查與校正電路更用以根據該全域奇偶資料對該第二資料執行一全域解碼操作,以更正該第一資料中的錯誤。
- 如請求項15所述的記憶體控制電路單元,其中該錯誤檢查與校正電路是使用一機率解演算法來執行該單頁解碼操作與該全域解碼操作。
- 如請求項15所述的記憶體控制電路單元,其中該第一類實體單元屬於一下實體程式化單元、一中實體程式化單元及一上實體程式化單元的其中之一,該第二類實體單元屬於該下實體程式化單元、該中實體程式化單元及該上實體程式化單元的其中之另一,並且該第三類實體單元屬於該下實體程式化單元、該中實體程式化單元及該上實體程式化單元的其中之又一。
- 如請求項17所述的記憶體控制電路單元,其中該下實體程式化單元是用以儲存多個第一記憶胞的最低有效位元,該中實體程式化單元是用以儲存該多個第一記憶胞的中間有效位 元,並且該上實體程式化單元是用以儲存該多個第一記憶胞的最高有效位元。
- 如請求項17所述的記憶體控制電路單元,其中該第一類實體單元、該第二類實體單元及該第三類實體單元的該至少其中之二包含該上實體程式化單元與該中實體程式化單元且不包含該下實體程式化單元。
- 如請求項17所述的記憶體控制電路單元,其中該第一類實體單元、該第二類實體單元及該第三類實體單元的該至少其中之二包含該上實體程式化單元、該中實體程式化單元及該下實體程式化單元。
- 如請求項15所述的記憶體控制電路單元,其中在產生該本地奇偶資料後,該記憶體管理電路更用以將該本地奇偶資料儲存於該第一類實體單元中,並且響應於該單頁解碼操作失敗,該記憶體管理電路更用以從該第一類實體單元讀取該本地奇偶資料,並將該本地奇偶資料應用於該全域解碼操作中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110105062A TWI763310B (zh) | 2021-02-09 | 2021-02-09 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
US17/195,547 US11430538B1 (en) | 2021-02-09 | 2021-03-08 | Memory control method, memory storage device, and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110105062A TWI763310B (zh) | 2021-02-09 | 2021-02-09 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI763310B true TWI763310B (zh) | 2022-05-01 |
TW202232317A TW202232317A (zh) | 2022-08-16 |
Family
ID=82594059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110105062A TWI763310B (zh) | 2021-02-09 | 2021-02-09 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11430538B1 (zh) |
TW (1) | TWI763310B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201608572A (zh) * | 2014-08-28 | 2016-03-01 | 群聯電子股份有限公司 | 資料存取方法、記憶體儲存裝置及記憶體控制電路單元 |
TW201913382A (zh) * | 2017-09-05 | 2019-04-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
TW202019100A (zh) * | 2018-11-14 | 2020-05-16 | 慧榮科技股份有限公司 | 快閃記憶體控制器及其中的編碼電路與解碼電路 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102293169B1 (ko) * | 2014-06-25 | 2021-08-26 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 동작 방법 |
KR102470606B1 (ko) * | 2015-11-26 | 2022-11-28 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 스토리지 장치 |
KR102496272B1 (ko) * | 2017-09-27 | 2023-02-03 | 삼성전자주식회사 | 비휘발성 메모리 장치, 및 이의 동작 방법 |
-
2021
- 2021-02-09 TW TW110105062A patent/TWI763310B/zh active
- 2021-03-08 US US17/195,547 patent/US11430538B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201608572A (zh) * | 2014-08-28 | 2016-03-01 | 群聯電子股份有限公司 | 資料存取方法、記憶體儲存裝置及記憶體控制電路單元 |
TW201913382A (zh) * | 2017-09-05 | 2019-04-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
TW202019100A (zh) * | 2018-11-14 | 2020-05-16 | 慧榮科技股份有限公司 | 快閃記憶體控制器及其中的編碼電路與解碼電路 |
Also Published As
Publication number | Publication date |
---|---|
US20220254431A1 (en) | 2022-08-11 |
TW202232317A (zh) | 2022-08-16 |
US11430538B1 (en) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10977116B2 (en) | Data access method, memory control circuit unit and memory storage device | |
US10318379B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US10447314B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
CN109491828B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN111580741B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
US10713160B1 (en) | Data writing method, memory control circuit unit and memory storage device | |
CN107305510B (zh) | 数据处理方法、存储器存储装置及存储器控制电路单元 | |
CN112799874B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN109697134B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN113724774B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN110874282B (zh) | 数据存取方法、存储器控制电路单元与存储器存储装置 | |
TWI763310B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN109508252B (zh) | 数据编码方法、存储器控制电路单元与存储器存储装置 | |
CN109710450B (zh) | 数据编码方法、存储器控制电路单元与存储器存储装置 | |
TWI771079B (zh) | 記憶體存取方法、記憶體儲存裝置及記憶體控制電路單元 | |
US11409596B1 (en) | Encoding control method, memory storage device and memory control circuit unit | |
CN114527941B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
US11531589B1 (en) | Decoding method, memory storage device, and memory control circuit unit | |
CN111666174B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
US10074433B1 (en) | Data encoding method, memory control circuit unit and memory storage device | |
CN109509499B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN107305476B (zh) | 数据校正方法、存储器控制电路单元与存储器存储装置 | |
TW202217556A (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN113299329A (zh) | 存储装置及其控制方法、控制电路单元 | |
CN117079691A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 |