TWI597731B - 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI597731B TWI597731B TW105122009A TW105122009A TWI597731B TW I597731 B TWI597731 B TW I597731B TW 105122009 A TW105122009 A TW 105122009A TW 105122009 A TW105122009 A TW 105122009A TW I597731 B TWI597731 B TW I597731B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- entity
- code rate
- value
- type
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/356—Unequal error protection [UEP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- 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/1068—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 sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
- G11C11/221—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements using ferroelectric capacitors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/353—Adaptation to the channel
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (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 Multi-Chip Package, eMMC)341及/或嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)儲存裝置342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
連接介面單元402用以將記憶體儲存裝置10耦接至主機系統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個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組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-check, LDPC)碼。例如,錯誤檢查與校正電路508可利用低密度奇偶檢查碼來編碼與解碼。然而,在另一範例實施例中,錯誤檢查與校正電路508亦可以支援BCH碼、迴旋碼(convolutional code)、區塊碼(block code)等其他類型的編/解碼演算法,本發明不加以限制。本領域具有通常知識者應當知曉如何使用所述編/解碼演算法來執行編碼與解碼操作,在此便不贅述。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體510與電源管理電路512。緩衝記憶體510是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路512是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
圖6是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。必須瞭解的是,在以下範例實施例中描述可複寫式非揮發性記憶體模組406之實體單元的運作時,以“分組”等詞來操作實體單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組406之實體單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組406的實體單元進行操作。
在本範例實施例中,可複寫式非揮發性記憶體模組406的記憶胞會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元至少可被分類為下實體程式化單元與上實體程式化單元。例如,若一個記憶胞可儲存2個位元(例如,“11”、“10”、“00”或“01”),則同一條字元線上的實體程式化單元包括一個下實體程式化單元與一個上實體程式化單元。在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。此外,若一個記憶胞可儲存3個位元(例如,“111”、“110”、“100”、“011”、“010”、“000”、“001”或“101”),則同一條字元線上的實體程式化單元包括一個下實體程式化單元、一個上實體程式化單元及一個額外(extra)實體程式化單元。
在本範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面(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中損壞的實體抹除單元。例如,若從某一個實體抹除單元中讀取的資料所包含的錯誤過多而無法被更正時,此實體抹除單元會被視為是損壞的實體抹除單元。在一範例實施例中,損壞的實體抹除單元亦稱為壞塊(bad block)。須注意的是,若替換區602中沒有可用的實體抹除單元,則記憶體管理電路502會將整個記憶體儲存裝置10宣告為寫入保護(write protect)狀態,而無法再寫入資料。
記憶體管理電路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的資料存取。
在本範例實施例中,錯誤檢查與校正電路508會基於某一碼率來編碼某一使用者資料(即,來自主機系統11且欲儲存之資料)並產生一已編碼資料,其中此碼率是指使用者資料在已編碼資料中佔有的比例。例如,假設使用者資料包含(
n-k)個位元並且經由編碼操作產生的已編碼資料包含
n個位元,則用於編碼此使用者資料的碼率為(
n-k)/
n。換言之,基於(
n-k)/
n之碼率來編碼(
n-k)個位元的使用者資料會產生
n個位元的已編碼資料,其中此
n個位元的已編碼資料是由(
n-k)個位元的使用者資料與
k個位元的奇偶(parity)資料組成。此外,此
k個位元的奇偶資料即可視為對應於此(
n-k)個位元的使用者資料的錯誤更正碼(及/或錯誤檢查碼)。然後,此
n個位元的已編碼資料會被儲存至可複寫式非揮發性記憶體模組406中的某一個實體程式化單元。例如,所述(
n-k)個位元的使用者資料所屬的一或多個邏輯單元會映射至此實體程式化單元。在此實體程式化單元中,(
n-k)個位元的使用者資料會被儲存在資料位元區,而
k個位元的奇偶資料則會被儲存在冗餘位元區。
在記憶體儲存裝置10的使用初期,記憶體管理電路502會為可複寫式非揮發性記憶體模組406中的每一個實體抹除單元配置一個編碼規則(以下亦稱為預設編碼規則)。依據此預設編碼規則,錯誤檢查與校正電路508可以基於一個碼率(以下亦稱為預設碼率)來編碼欲儲存至相應之實體抹除單元的資料。
在本範例實施例中,為可複寫式非揮發性記憶體模組406中的每一個實體抹除單元配置的預設編碼規則都是相同的。亦即,用於編碼欲儲存至每一個實體抹除單元之資料的預設碼率都是相同的。然而,在另一範例實施例中,為可複寫式非揮發性記憶體模組406中不同的實體抹除單元配置的預設編碼規則亦可能不同,使得欲儲存至不同實體抹除單元之資料會基於不同的預設碼率而被編碼。例如,考慮到某一實體抹除單元在可複寫式非揮發性記憶體模組406中的位置、某一個實體抹除單元的材料特性、某一個實體抹除單元的操作模式(例如,操作於SLC、MLC或TLC模式)及/或多個實體抹除單元在可複寫式非揮發性記憶體模組406中的相對位置等等,不同的預設編碼規則可初始地配置給不同的實體抹除單元。
圖7A是根據本發明的一範例實施例所繪示的基於預設編碼規則來編碼資料的示意圖。
請參照圖7A,在本範例實施例中,實體抹除單元710作為第一實體抹除單元,並且實體抹除單元710中的每一個記憶胞可儲存2個位元。實體抹除單元710包括多個第一類實體程式化單元701_1~701_n與多個第二類實體程式化單元702_1~702_n,其中第一類實體程式化單元701_1~701_n中的每一者為一個下實體程式化單元,並且第二類實體程式化單元702_1~702_n中的每一者為一個上實體程式化單元。此外,第一類實體程式化單元701_1與第二類實體程式化單元702_1是由相同字元線上的記憶胞組成,第一類實體程式化單元701_2與第二類實體程式化單元702_2是由相同字元線上的記憶胞組成,並且第一類實體程式化單元701_n與第二類實體程式化單元702_n是由相同字元線上的記憶胞組成,以此類推。
記憶體管理電路502會為實體抹除單元710配置一個預設編碼規則。此預設編碼規則包括由錯誤檢查與校正電路508基於一個預設碼率來編碼欲儲存至第一類實體程式化單元701_1~701_n之資料並基於相同的預設碼率來編碼欲儲存至第二類實體程式化單元702_1~702_n之資料。由於用於編碼資料的碼率都是相同的(即,預設碼率),被儲存至每一個第一類實體程式化單元與每一個第二類實體程式化單元的已編碼資料中使用者資料與奇偶資料之比例也都是相同的。例如,儲存在第一類實體程式化單元701_n中的使用者資料與奇偶資料之比例符合此預設碼率,並且儲存在第二類實體程式化單元702_n中的使用者資料與奇偶資料之比例亦符合此預設碼率,如圖7A所示。須注意的是,所述使用者資料與奇偶資料之比例是指資料量的比例。
隨著記憶體儲存裝置10的使用時間增加,從第一實體抹除單元讀取的資料會包含越來越多的錯誤。記憶體管理電路502會獲得第一實體抹除單元的錯誤評估資訊並根據此錯誤評估資訊,為第一實體抹除單元配置另一編碼規則(以下亦稱為第一編碼規則)。此錯誤評估資訊可包括與第一實體抹除單元的使用程度及/或錯誤發生率有關的任意資訊。例如,此錯誤評估資訊可包括第一實體抹除單元的寫入次數、第一實體抹除單元的讀取次數、第一實體抹除單元的抹除次數、第一實體抹除單元中一或多個實體程式化單元的位元錯誤率或上述資訊之組合。
圖7B是根據本發明的一範例實施例所繪示的基於第一編碼規則來編碼資料的示意圖。
請參照圖7B,在記憶體儲存裝置10使用一段時間之後,根據第一類實體程式化單元701_1~701_n的位元錯誤率及/或第二類實體程式化單元702_1~702_n的位元錯誤率,記憶體管理電路502會為實體抹除單元710配置一個第一編碼規則。此第一編碼規則包括基於一碼率(以下亦稱為第一碼率)來編碼欲儲存至第一類實體程式化單元701_1~701_n中的每一者之資料並基於另一碼率(以下亦稱為第二碼率)來編碼欲儲存至第二類實體程式化單元702_1~702_n中的每一者之資料,其中第一碼率的值大於預設碼率的值,並且第二碼率的值小於預設碼率的值。
由於第一碼率的值大於預設碼率的值,圖7B中儲存於每一個第一類實體程式化單元之使用者資料的資料量會大於圖7A中儲存於每一個第一類實體程式化單元之使用者資料的資料量,並且圖7B中儲存於每一個第一類實體程式化單元之奇偶資料的資料量會小於圖7A中儲存於每一個第一類實體程式化單元之奇偶資料的資料量。此外,由於第二碼率的值小於預設碼率的值,圖7B中儲存於每一個第二類實體程式化單元之使用者資料的資料量會小於圖7A中儲存於每一個第二類實體程式化單元之使用者資料的資料量,並且圖7B中儲存於每一個第二類實體程式化單元之奇偶資料的資料量會大於圖7A中儲存於每一個第二類實體程式化單元之奇偶資料的資料量。
在一範例實施例中,第一碼率的值與第二碼率的值之總和會等於預設碼率的值的二倍。由於第一類實體程式化單元的可靠度高於第二類實體程式化單元的可靠度,因此,透過提高第一碼率並降低第二碼率,可在不減少第一實體抹除單元可以儲存之資料的總資料量之前提下,延長第一實體抹除單元的壽命。以圖7B為例,即便從第二類實體程式化單元702_1~702_n中的任一者讀取的資料中包含越來越多的錯誤,透過降低第二碼率(即,增加儲存在每一個第二類實體程式化單元中的奇偶位元的資料量),此些錯誤有更大的機率可以被更正。藉此,實體抹除單元710被視為壞塊的時間點可被延遲。
圖8A是根據本發明的另一範例實施例所繪示的基於預設編碼規則來編碼資料的示意圖。
請參照圖8A,在本範例實施例中,實體抹除單元810作為第一實體抹除單元,並且實體抹除單元810中的每一個記憶胞可儲存3個位元。實體抹除單元810包括多個第一類實體程式化單元801_1~801_n、多個第二類實體程式化單元802_1~802_n以及多個第三類實體程式化單元803_1~803_n,其中第一類實體程式化單元801_1~801_n中的每一者為一個下實體程式化單元,第二類實體程式化單元802_1~802_n中的每一者為一個上實體程式化單元,並且第三類實體程式化單元803_1~803_n中的每一者為一個額外實體程式化單元。此外,第一類實體程式化單元801_1、第二類實體程式化單元802_1及第三類實體程式化單元803_1是由相同字元線上的記憶胞組成;第一類實體程式化單元801_n、第二類實體程式化單元802_n及第三類實體程式化單元803_n是由相同字元線上的記憶胞組成,以此類推。
在記憶體儲存裝置10的使用初期,記憶體管理電路502會為實體抹除單元810配置一個預設編碼規則。此預設編碼規則包括由錯誤檢查與校正電路508基於相同的預設碼率來編碼欲儲存至實體抹除單元810中的每一個實體程式化單元之資料,如圖8A所示。
圖8B是根據本發明的另一範例實施例所繪示的基於第一編碼規則來編碼資料的示意圖。
請參照圖8B,在記憶體儲存裝置10使用一段時間之後,根據第一類實體程式化單元801_1~801_n的位元錯誤率、第二類實體程式化單元802_1~802_n的位元錯誤率、及/或第三類實體程式化單元803_1~803_n的位元錯誤率,記憶體管理電路502會為實體抹除單元810配置一個第一編碼規則。此第一編碼規則包括基於第一碼率來編碼欲儲存至第一類實體程式化單元801_1~801_n中的每一者之資料、基於第二碼率來編碼欲儲存至第二類實體程式化單元802_1~802_n中的每一者之資料、並且基於另一碼率(以下亦稱為第三碼率)來編碼欲儲存至第三類實體程式化單元803_1~803_n中的每一者之資料,其中第一碼率的值大於預設碼率的值,並且第二碼率的值小於預設碼率的值。在一範例實施例中,第一碼率的值、第二碼率的值及第三碼率的值之總和會等於預設碼率的值的三倍。在一範例實施例中,第三碼率的值會等於預設碼率的值。然而,在另一範例實施例中,第三碼率的值也可能不等於預設碼率的值,而是隨著第一碼率及/或第二碼率的值而改變。
須注意的是,雖然圖7A、圖7B、圖8A及圖8B是根據第一實體抹除單元中一或多個實體程式化單元的位元錯誤率來決定第一編碼規則、第一碼率、第二碼率及/或第三碼率,在另一範例實施例中,其他類型的錯誤評估資訊亦可用來決定第一編碼規則、第一碼率、第二碼率及/或第三碼率。例如,在圖8A與圖8B的一範例實施例中,預設碼率為“0.889”。當第二類實體程式化單元802_2的抹除次數增加為“1750”時,對應於實體抹除單元810的編碼規則被更新為第一編碼規則並且第一碼率、第二碼率及第三碼率被分別設為“0.903”、“0.875”及“0.889”。然後,當第二類實體程式化單元802_2的抹除次數進一步增加為“2000”時,對應於實體抹除單元810的編碼規則相應地被更新為另一第一編碼規則並且第一碼率、第二碼率及第三碼率被更新為“0.917”、“0.861”及“0.889”。例如,第二類實體程式化單元802_2的抹除次數可被輸入至一查找表,而根據此查找表之輸出,更新後的第一碼率、第二碼率及第三碼率的至少其中之一可被獲得。此外,在上述範例實施例中,是以一個第二類實體程式化單元的抹除次數增加“150”作為更新相應之實體抹除單元的編碼規則的觸發條件。在其他範例實施例中,其他的觸發條件亦可以對應於不同的錯誤評估資訊而設置,例如,某一個第二類實體程式化單元的位元錯誤率增加一預設值等等,從而控制更新當前編碼規則的時間點。
在一範例實施例中,用於第一實體抹除單元的預設編碼規則會被持續使用到第一實體抹除單元中某一個實體程式化單元的錯誤評估資訊符合一預設條件。當此實體程式化單元的錯誤評估資訊符合此預設條件時,第一編碼規則才會被配置給第一實體抹除單元。例如,在圖8A與圖8B的一範例實施例中,在第二類實體程式化單元802_2的抹除次數達到“1500”之前,預設碼率會被持續用來編碼任何欲儲存至實體抹除單元810之資料;而在第二類實體程式化單元802_2的抹除次數達到“1500”之後,第一碼率、第二碼率及第三碼率可被決定並且被配置給實體抹除單元910中相應類型的實體程式化單元。此外,圖7A、圖7B、圖8A及圖8B的範例實施例可套用至圖6中可用來儲存資料的任一個實體抹除單元。
圖9是根據本發明的一範例實施例所繪示的錯誤檢查與校正電路的示意圖。
請參照圖9,在一範例實施例中,錯誤檢查與校正電路508包括碼率選擇器901與編碼電路902,其中碼率選擇器901耦接至編碼電路902。當欲編碼使用者資料Data時,碼率選擇器901會接收使用者資料Data以及相應的系統資訊SI。例如,此使用者資料Data與系統資訊SI是相互匹配的。系統資訊SI會指示使用者資料Data是要被儲存至屬於哪一個實體抹除單元的哪一個實體程式化單元。根據系統資訊SI,碼率選擇器901會根據當前配置給此實體程式化單元所屬的實體抹除單元的編碼規則來決定一個碼率參數Para,其中碼率參數Para會對應至一個特定碼率。根據碼率參數Para,編碼電路902可基於此特定碼率來編碼使用者資料Data並輸出符合此特定碼率的已編碼資料Data_Encoded。以圖8B為例,若使用者資料Data預設是被儲存至第二類實體程式化單元802_2,在基於第二碼率來編碼使用者資料Data之後,所產生的已編碼資料Data_Encoded(包含使用者資料Data與相應的奇偶資料)會被儲存至第二類實體程式化單元802_2。
在另一範例實施例中,系統資訊SI還可以包括用以儲存使用者資料Data之實體程式化單元的錯誤評估資訊。根據此錯誤評估資訊,碼率選擇器901可根據當前配置給此實體程式化單元所屬之實體抹除單元的編碼規則來查詢對應於此實體程式化單元的碼率並輸出相應的編碼參數Para。以圖8B為例,若使用者資料Data預設是被儲存至第二類實體程式化單元802_1,碼率選擇器901可根據系統資訊SI查詢在第一編碼規則下第二類實體程式化單元802_1是對應至第二碼率並輸出相應的編碼參數Para。根據此編碼參數Para,編碼電路902可基於第二碼率來編碼使用者資料Data並產生已編碼資料Data_Encoded。
圖10是根據本發明的一範例實施例所繪示的記憶體管理方法的流程圖。
請參照圖10,在步驟S1001中,為第一實體抹除單元配置預設編碼規則,其中所述預設編碼規則包括基於預設碼率來編碼欲儲存至屬於第一實體抹除單元的第一類實體程式化單元之資料並基於預設碼率來編碼欲儲存至屬於第一實體抹除單元的第二類實體程式化單元之資料。在步驟S1002中,獲得第一實體抹除單元的錯誤評估資訊。在步驟S1003中,根據第一實體抹除單元的錯誤評估資訊,為第一實體抹除單元配置第一編碼規則,其中第一編碼規則包括基於第一碼率來編碼欲儲存至屬於第一實體抹除單元的第一類實體程式化單元之資料並基於第二碼率來編碼欲儲存至屬於第一實體抹除單元的第二類實體程式化單元之資料,其中第一碼率的值大於預設碼率的值,並且第二碼率的值小於預設碼率的值。在步驟S1003之後,若滿足更新編碼規則的觸發條件,則步驟S1002可被重複執行。藉由動態地調整第一實體抹除單元的編碼規則,第一實體抹除單元的壽命可被延長。
然而,圖10中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖10中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖10的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,本發明可自動地更新對應於特定實體抹除單元的編碼規則。藉由控制屬於特定實體抹除單元之多個類型的實體程式化單元之碼率,此特定實體抹除單元之壽命可以被延長。藉此,記憶體儲存裝置之壽命亦可以被延長。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
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)、710、810‧‧‧實體抹除單元
612(0)~612(C)‧‧‧邏輯單元
701_1~701_n、801_1~801_n‧‧‧第一類實體程式化單元
701_2~702_n、802_1~802_n‧‧‧第二類實體程式化單元
803_1~803_n‧‧‧第三類實體程式化單元
901‧‧‧碼率選擇器
902‧‧‧編碼電路
S1001‧‧‧步驟(為第一實體抹除單元配置預設編碼規則,其中所述預設編碼規則包括基於預設碼率來編碼欲儲存至屬於第一實體抹除單元的第一類實體程式化單元之資料並基於預設碼率來編碼欲儲存至屬於第一實體抹除單元的第二類實體程式化單元之資料) S1002‧‧‧步驟(獲得第一實體抹除單元的錯誤評估資訊) S1003‧‧‧步驟(根據第一實體抹除單元的錯誤評估資訊,為第一實體抹除單元配置第一編碼規則,其中第一編碼規則包括基於第一碼率來編碼欲儲存至屬於第一實體抹除單元的第一類實體程式化單元之資料並基於第二碼率來編碼欲儲存至屬於第一實體抹除單元的第二類實體程式化單元之資料)
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)、710、810‧‧‧實體抹除單元
612(0)~612(C)‧‧‧邏輯單元
701_1~701_n、801_1~801_n‧‧‧第一類實體程式化單元
701_2~702_n、802_1~802_n‧‧‧第二類實體程式化單元
803_1~803_n‧‧‧第三類實體程式化單元
901‧‧‧碼率選擇器
902‧‧‧編碼電路
S1001‧‧‧步驟(為第一實體抹除單元配置預設編碼規則,其中所述預設編碼規則包括基於預設碼率來編碼欲儲存至屬於第一實體抹除單元的第一類實體程式化單元之資料並基於預設碼率來編碼欲儲存至屬於第一實體抹除單元的第二類實體程式化單元之資料) S1002‧‧‧步驟(獲得第一實體抹除單元的錯誤評估資訊) S1003‧‧‧步驟(根據第一實體抹除單元的錯誤評估資訊,為第一實體抹除單元配置第一編碼規則,其中第一編碼規則包括基於第一碼率來編碼欲儲存至屬於第一實體抹除單元的第一類實體程式化單元之資料並基於第二碼率來編碼欲儲存至屬於第一實體抹除單元的第二類實體程式化單元之資料)
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。 圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。 圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。 圖6是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。 圖7A是根據本發明的一範例實施例所繪示的基於預設編碼規則來編碼資料的示意圖。 圖7B是根據本發明的一範例實施例所繪示的基於第一編碼規則來編碼資料的示意圖。 圖8A是根據本發明的另一範例實施例所繪示的基於預設編碼規則來編碼資料的示意圖。 圖8B是根據本發明的另一範例實施例所繪示的基於第一編碼規則來編碼資料的示意圖。 圖9是根據本發明的一範例實施例所繪示的錯誤檢查與校正電路的示意圖。 圖10是根據本發明的一範例實施例所繪示的記憶體管理方法的流程圖。
S1001‧‧‧步驟(為第一實體抹除單元配置預設編碼規則,其中所述預設編碼規則包括基於預設碼率來編碼欲儲存至屬於第一實體抹除單元的第一類實體程式化單元之資料並基於預設碼率來編碼欲儲存至屬於第一實體抹除單元的第二類實體程式化單元之資料)
S1002‧‧‧步驟(獲得第一實體抹除單元的錯誤評估資訊)
S1003‧‧‧步驟(根據第一實體抹除單元的錯誤評估資訊,為第一實體抹除單元配置第一編碼規則,其中第一編碼規則包括基於第一碼率來編碼欲儲存至屬於第一實體抹除單元的第一類實體程
式化單元之資料並基於第二碼率來編碼欲儲存至屬於第一實體抹除單元的第二類實體程式化單元之資料)
Claims (21)
- 一種記憶體管理方法,用於包括多個實體抹除單元的一可複寫式非揮發性記憶體模組,該記憶體管理方法包括: 為該些實體抹除單元中的一第一實體抹除單元配置一預設編碼規則,其中該預設編碼規則包括基於一預設碼率來編碼欲儲存至屬於該第一實體抹除單元的一第一類實體程式化單元之資料並基於該預設碼率來編碼欲儲存至屬於該第一實體抹除單元的一第二類實體程式化單元之資料; 獲得該第一實體抹除單元的一錯誤評估資訊;以及 根據該第一實體抹除單元的該錯誤評估資訊,為該第一實體抹除單元配置一第一編碼規則,其中該第一編碼規則包括基於一第一碼率來編碼欲儲存至屬於該第一實體抹除單元的該第一類實體程式化單元之資料並基於一第二碼率來編碼欲儲存至屬於該第一實體抹除單元的該第二類實體程式化單元之資料, 其中該第一碼率的值大於該預設碼率的值,其中該第二碼率的值小於該預設碼率的值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第一類實體程式化單元為一下實體程式化單元,並且該第二類實體程式化單元為一上實體程式化單元。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第一碼率的值與該第二碼率的值之一總和等於該預設碼率的值的二倍。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該預設編碼規則更包括基於該預設碼率來編碼欲儲存至屬於該第一實體抹除單元的一第三類實體程式化單元之資料, 其中該第一編碼規則更包括基於一第三碼率來編碼欲儲存至屬於該第一實體抹除單元的該第三類實體程式化單元之資料, 其中該第一碼率的值、該第二碼率的值及該第三碼率的值之一總和等於該預設碼率的值的三倍。
- 如申請專利範圍第4項所述的記憶體管理方法,其中該第一類實體程式化單元為一下實體程式化單元,該第二類實體程式化單元為一上實體程式化單元,並且該第三類實體程式化單元為一額外實體程式化單元。
- 如申請專利範圍第4項所述的記憶體管理方法,其中該第三碼率的值等於該預設碼率的值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中根據該第一實體抹除單元的該錯誤評估資訊,為該第一實體抹除單元配置該第一編碼規則的步驟包括: 根據屬於該第一實體抹除單元的該第一類實體程式化單元或屬於該第一實體抹除單元的該第二類實體程式化單元的一位元錯誤率來決定該第一碼率與該第二碼率。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,包括多個實體抹除單元;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以為該些實體抹除單元中的一第一實體抹除單元配置一預設編碼規則,其中該預設編碼規則包括基於一預設碼率來編碼欲儲存至屬於該第一實體抹除單元的一第一類實體程式化單元之資料並基於該預設碼率來編碼欲儲存至屬於該第一實體抹除單元的一第二類實體程式化單元之資料, 其中該記憶體控制電路單元更用以獲得該第一實體抹除單元的一錯誤評估資訊, 其中該記憶體控制電路單元更用以根據該第一實體抹除單元的該錯誤評估資訊,為該第一實體抹除單元配置一第一編碼規則,其中該第一編碼規則包括基於一第一碼率來編碼欲儲存至屬於該第一實體抹除單元的該第一類實體程式化單元之資料並基於一第二碼率來編碼欲儲存至屬於該第一實體抹除單元的該第二類實體程式化單元之資料, 其中該第一碼率的值大於該預設碼率的值,其中該第二碼率的值小於該預設碼率的值。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該第一類實體程式化單元為一下實體程式化單元,並且該第二類實體程式化單元為一上實體程式化單元。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該第一碼率的值與該第二碼率的值之一總和等於該預設碼率的值的二倍。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該預設編碼規則更包括基於該預設碼率來編碼欲儲存至屬於該第一實體抹除單元的一第三類實體程式化單元之資料, 其中該第一編碼規則更包括基於一第三碼率來編碼欲儲存至屬於該第一實體抹除單元的該第三類實體程式化單元之資料, 其中該第一碼率的值、該第二碼率的值及該第三碼率的值之一總和等於該預設碼率的值的三倍。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中該第一類實體程式化單元為一下實體程式化單元,該第二類實體程式化單元為一上實體程式化單元,並且該第三類實體程式化單元為一額外實體程式化單元。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中該第三碼率的值等於該預設碼率的值。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該記憶體控制電路單元根據該第一實體抹除單元的該錯誤評估資訊,為該第一實體抹除單元配置該第一編碼規則的操作包括: 根據屬於該第一實體抹除單元的該第一類實體程式化單元或屬於該第一實體抹除單元的該第二類實體程式化單元的一位元錯誤率來決定該第一碼率與該第二碼率。
- 一種記憶體控制電路單元,用於控制包括多個實體抹除單元的一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組; 一錯誤檢查與校正電路;以及 一記憶體管理電路,耦接至該主機介面、該記憶體介面及該錯誤檢查與校正電路, 其中該記憶體管理電路用以為該些實體抹除單元中的一第一實體抹除單元配置一預設編碼規則,其中該預設編碼規則包括由該錯誤檢查與校正電路基於一預設碼率來編碼欲儲存至屬於該第一實體抹除單元的一第一類實體程式化單元之資料並基於該預設碼率來編碼欲儲存至屬於該第一實體抹除單元的一第二類實體程式化單元之資料, 其中該記憶體管理電路更用以獲得該第一實體抹除單元的一錯誤評估資訊, 其中該記憶體管理電路更用以根據該第一實體抹除單元的該錯誤評估資訊,為該第一實體抹除單元配置一第一編碼規則,其中該第一編碼規則包括由該錯誤檢查與校正電路基於一第一碼率來編碼欲儲存至屬於該第一實體抹除單元的該第一類實體程式化單元之資料並基於一第二碼率來編碼欲儲存至屬於該第一實體抹除單元的該第二類實體程式化單元之資料, 其中該第一碼率的值大於該預設碼率的值,其中該第二碼率的值小於該預設碼率的值。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該第一類實體程式化單元為一下實體程式化單元,並且該第二類實體程式化單元為一上實體程式化單元。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該第一碼率的值與該第二碼率的值之一總和等於該預設碼率的值的二倍。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該預設編碼規則更包括由該錯誤檢查與校正電路基於該預設碼率來編碼欲儲存至屬於該第一實體抹除單元的一第三類實體程式化單元之資料, 其中該第一編碼規則更包括由該錯誤檢查與校正電路基於一第三碼率來編碼欲儲存至屬於該第一實體抹除單元的該第三類實體程式化單元之資料, 其中該第一碼率的值、該第二碼率的值及該第三碼率的值之一總和等於該預設碼率的值的三倍。
- 如申請專利範圍第18項所述的記憶體控制電路單元,其中該第一類實體程式化單元為一下實體程式化單元,該第二類實體程式化單元為一上實體程式化單元,並且該第三類實體程式化單元為一額外實體程式化單元。
- 如申請專利範圍第18項所述的記憶體控制電路單元,其中該第三碼率的值等於該預設碼率的值。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路根據該第一實體抹除單元的該錯誤評估資訊,為該第一實體抹除單元配置該第一編碼規則的操作包括: 根據屬於該第一實體抹除單元的該第一類實體程式化單元或屬於該第一實體抹除單元的該第二類實體程式化單元的一位元錯誤率來決定該第一碼率與該第二碼率。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105122009A TWI597731B (zh) | 2016-07-13 | 2016-07-13 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
US15/235,107 US9941907B2 (en) | 2016-07-13 | 2016-08-12 | Memory management method, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105122009A TWI597731B (zh) | 2016-07-13 | 2016-07-13 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI597731B true TWI597731B (zh) | 2017-09-01 |
TW201802820A TW201802820A (zh) | 2018-01-16 |
Family
ID=60719486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105122009A TWI597731B (zh) | 2016-07-13 | 2016-07-13 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9941907B2 (zh) |
TW (1) | TWI597731B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200011655A (ko) * | 2018-07-25 | 2020-02-04 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
TWI819876B (zh) * | 2022-11-02 | 2023-10-21 | 群聯電子股份有限公司 | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009053962A2 (en) * | 2007-10-22 | 2009-04-30 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
TWI545581B (zh) * | 2014-04-15 | 2016-08-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 |
-
2016
- 2016-07-13 TW TW105122009A patent/TWI597731B/zh active
- 2016-08-12 US US15/235,107 patent/US9941907B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW201802820A (zh) | 2018-01-16 |
US9941907B2 (en) | 2018-04-10 |
US20180019765A1 (en) | 2018-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI649754B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI600024B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI592869B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI658463B (zh) | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI670716B (zh) | 資料存取方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI731338B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI606333B (zh) | 資料處理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI529530B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI545581B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201913382A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI628543B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI751620B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI797464B (zh) | 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201719413A (zh) | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI597731B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI554884B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN113724774A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN110874282B (zh) | 数据存取方法、存储器控制电路单元与存储器存储装置 | |
TWI591641B (zh) | 資料程式化方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI808483B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI834149B (zh) | 表格管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI810865B (zh) | 表格排序方法、記憶體儲存裝置及記憶體控制電路單元 |