TW201709063A - 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 - Google Patents

記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 Download PDF

Info

Publication number
TW201709063A
TW201709063A TW104126901A TW104126901A TW201709063A TW 201709063 A TW201709063 A TW 201709063A TW 104126901 A TW104126901 A TW 104126901A TW 104126901 A TW104126901 A TW 104126901A TW 201709063 A TW201709063 A TW 201709063A
Authority
TW
Taiwan
Prior art keywords
data
unit
physical
memory
reference count
Prior art date
Application number
TW104126901A
Other languages
English (en)
Other versions
TWI554885B (zh
Inventor
葉志剛
Original Assignee
群聯電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 群聯電子股份有限公司 filed Critical 群聯電子股份有限公司
Priority to TW104126901A priority Critical patent/TWI554885B/zh
Priority to US14/854,059 priority patent/US10503433B2/en
Application granted granted Critical
Publication of TWI554885B publication Critical patent/TWI554885B/zh
Publication of TW201709063A publication Critical patent/TW201709063A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

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

Abstract

本發明提出一種記憶體管理方法,其包括:選擇映射到以第一操作模式來程式化資料的實體單元的至少一邏輯單元;根據所選擇的邏輯單元的總數來決定一參考計數;接收第一寫入指令;判斷參考計數是否大於門檻值;若參考計數大於門檻值,以第一操作模式將第一資料程式化至第一實體單元,其中第一實體單元中的每一個記憶胞皆用以儲存第一數目的位元資料;若參考計數不大於門檻值,以第二操作模式將第一資料程式化至第二實體單元,其中第二實體單元中的每一個記憶胞皆用以儲存第二數目的位元資料,其中第二數目大於第一數目。

Description

記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
本發明是有關於一種記憶體管理機制, 且特別是有關於一種記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置。
數位相機、手機與MP3 在這幾年來的成長十分迅速, 使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性, 最適於可攜式電子產品, 例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的記憶體儲存裝置。因此, 近年快閃記憶體產業成為電子產業中相當熱門的一環。
依據每個記憶胞可儲存的位元數,反及(NAND)型快閃記憶體可區分為單階儲存單元(Single Level Cell, SLC)NAND型快閃記憶體、多階儲存單元(Multi Level Cell, MLC)NAND型快閃記憶體與複數階儲存單元(Trinary Level Cell, TLC)NAND型快閃記憶體。其中SLC NAND型快閃記憶體的每個記憶胞可儲存1個位元的資料(即,”1”與”0”),MLC NAND型快閃記憶體的每個記憶胞可儲存2個位元的資料並且TLC NAND型快閃記憶體的每個記憶胞可儲存3個位元的資料。
在NAND型快閃記憶體中,實體程式化單元是由排列在同一條字元線上的數個記憶胞所組成。由於SLC NAND型快閃記憶體的每個記憶胞可儲存1個位元的資料,因此,在SLC NAND型快閃記憶體中,排列在同一條字元線上的數個記憶胞是對應一個實體程式化單元。
相對於SLC NAND型快閃記憶體來說,MLC NAND型快閃記憶體的每個記憶胞的浮動閘儲存層可儲存2個位元的資料,其中每一個儲存狀態(即,”11”、”10”、”01”與”00”)包括最低有效位元(Least Significant Bit, LSB)以及最高有效位元(Most Significant Bit, MSB)。例如,儲存狀態中從左側算起之第1個位元的值為LSB,而從左側算起之第2個位元的值為MSB。因此,排列在同一條字元線上的數個記憶胞可組成2個實體程式化單元,其中由此些記憶胞之LSB所組成的實體程式化單元稱為下實體程式化單元,或下實體頁面(lower physical page),並且由此些記憶胞之MSB所組成的實體程式化單元稱為上實體程式化單元,或上實體頁面(upper physical page)。特別是,下實體程式化單元的寫入速度會快於上實體程式化單元的寫入速度,並且當程式化上實體程式化單元發生錯誤時,下實體程式化單元所儲存之資料亦可能因此遺失。
類似地,在TLC NAND型快閃記憶體中,每個記憶胞可儲存3個位元的資料,其中每一個儲存狀態(即,”111”、”110”、”101”、”100”、”011”、”010”、”001”與”000”)包括每一個儲存狀態包括左側算起之第1個位元的LSB、從左側算起之第2個位元的中間有效位元(Center Significant Bit, CSB)以及從左側算起之第3個位元的MSB。因此,排列在同一條字元線上的數個記憶胞可組成3個實體程式化單元,其中由此些記憶胞之LSB所組成的實體程式化單元稱為下實體程式化單元,由此些記憶胞之CSB所組成的實體程式化單元稱為中實體程式化單元,並且由此些記憶胞之MSB所組成的實體程式化單元稱為上實體程式化單元。特別是,對排列在同一條字元線上的數個記憶胞進行程式化時,僅能選擇僅程式化下實體程式化單元或者同時程式化下實體程式化單元、中實體程式化單元與上實體程式化單元,否則所儲存之資料可能會遺失。
由於MLC NAND型快閃記憶體下實體程式化單元的存取速度會比上實體程式化單元的寫入速度快,因此如果只使用下實體程式化單元來儲存資料(或稱為單頁模式),就可提升MLC NAND型快閃記憶體的存取速度,但其所能儲存的資料量會變成同時使用下實體程式化單元及上實體程式化單元來儲存的資料量的一半。然而,如果過度使用單頁模式來存取資料,會造成已儲存資料量到達快閃記憶體可用容量一半之後因為儲存空間不足而必須進行垃圾收集操作以釋放足夠空間來儲存新的資料,這會造成寫入速度驟降。
本發明提供一種記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置, 可改善由於以單頁模式寫入的實體單元大小沒有限制, 而在寫入資料大小到達記憶體儲存裝置的一半以後因為必須進行大量垃圾收集操作而造成的寫入速度突然驟降的問題。
本發明的一範例實施例提供一種記憶體管理方法,用於可複寫式非揮發性記憶體模組,上述可複寫式非揮發性記憶體模組包括多個實體單元,記憶體管理方法包括:選擇符合第一條件的至少一邏輯單元,其中符合第一條件的至少一邏輯單元映射至上述實體單元中的至少一第三實體單元,上述至少一第三實體單元的每一個記憶胞皆用以儲存第一數目的位元資料且以第一操作模式來程式化資料,其中每一至少一第三實體單元中的每一個記憶胞皆用以儲存第一數目的位元資料;根據所選擇的至少一邏輯單元的總數來決定一參考計數;接收第一寫入指令;判斷參考計數是否大於門檻值;若參考計數大於門檻值,以第一操作模式來將對應於第一寫入指令的第一資料程式化至上述實體單元中的至少一第一實體單元,其中每一至少一第一實體單元中的每一個記憶胞皆用以儲存第一數目的位元資料;若參考計數不大於門檻值,以第二操作模式來將第一資料程式化至上述實體單元中的至少一第二實體單元,其中每一至少一第二實體單元中的每一個記憶胞皆用以儲存第二數目的位元資料,其中第二數目大於第一數目。
在本發明的一範例實施例中,上述記憶體管理方法更包括根據所配置的多個邏輯單元的總邏輯容量與上述實體單元的總實體容量之間的差值來決定參考計數的初始值。
在本發明的一範例實施例中,上述每一至少一第三實體單元所儲存之資料皆為有效資料。
在本發明的一範例實施例中,上述參考計數與可複寫式非揮發性記憶體模組中以第一操作模式來程式化的有效資料之資料量成負相關。
在本發明的一範例實施例中,上述參考計數與至少一邏輯單元之總數成負相關。
在本發明的一範例實施例中,上述記憶體管理方法更包括執行資料整倂程序以將參考計數從第一值調整為第二值,其中第二值大於第一值。上述資料整倂程序包括在上述實體單元中選擇以第一操作模式程式化的有效資料來執行資料整倂程序。資料整倂程序更包括抹除上述實體單元中儲存無效資料的至少一實體單元。
在本發明的一範例實施例中,上述記憶體管理方法更包括若上述至少一第三實體單元所儲存之資料經過壓縮,則調整參考計數。
在本發明的一範例實施例中,上述記憶體管理方法更包括若上述實體單元中以第二操作模式來程式化之資料經過壓縮則調整參考計數。
本發明的一範例實施例提供一種記憶體控制電路單元,用於控制可複寫式非揮發性記憶體模組,記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組,可複寫式非揮發性記憶體模組包括多個實體單元。記憶體管理電路耦接至主機介面與記憶體介面。其中記憶體管理電路用以選擇符合第一條件的至少一邏輯單元,其中符合第一條件的至少一邏輯單元映射至上述實體單元中的至少一第三實體單元,至少一第三實體單元的每一個記憶胞皆用以儲存第一數目的位元資料且以第一操作模式來程式化資料。其中記憶體管理電路用以根據所選擇的至少一邏輯單元的總數來決定參考計數。其中記憶體管理電路用以接收第一寫入指令。其中記憶體管理電路用以判斷參考計數是否大於門檻值。若參考計數大於門檻值,記憶體管理電路指示以第一操作模式來將對應於第一寫入指令的第一資料程式化至上述實體單元中的至少一第一實體單元,其中每一至少一第一實體單元中的每一個記憶胞皆用以儲存第一數目的位元資料。若參考計數不大於門檻值,記憶體管理電路指示以第二操作模式來將第一資料程式化至上述實體單元中的至少一第二實體單元,其中每一至少一第二實體單元中的每一個記憶胞皆用以儲存第二數目的位元資料。其中第二數目大於第一數目。
在本發明的一範例實施例中,上述記憶體管理電路根據所配置的多個邏輯單元的總邏輯容量與上述實體單元的總實體容量之間的差值來決定參考計數的初始值。
在本發明的一範例實施例中,上述每一至少一第三實體單元所儲存之資料皆為有效資料。
在本發明的一範例實施例中,上述參考計數與可複寫式非揮發性記憶體模組中以第一操作模式來程式化的有效資料之資料量成負相關。
在本發明的一範例實施例中,上述參考計數與至少一邏輯單元之總數成負相關。
在本發明的一範例實施例中,上述記憶體管理電路用以指示執行資料整倂程序以將參考計數從第一值調整為第二值,其中第二值大於第一值。其中資料整倂程序包括在上述實體單元中選擇以第一操作模式程式化的有效資料來執行資料整倂程序。資料整倂程序更包括抹除上述實體單元中儲存無效資料的至少一實體單元。
在本發明的一範例實施例中,若上述至少一第三實體單元所儲存之資料經過壓縮,則上述記憶體管理電路調整參考計數。
在本發明的一範例實施例中,若上述實體單元中以第二操作模式來程式化之資料經過壓縮,則上述記憶體管理電路調整參考計數。
本發明的一範例實施例提供一種記憶體儲存裝置,包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個實體單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。其中記憶體控制電路單元用以選擇符合第一條件的至少一邏輯單元,其中符合第一條件的至少一邏輯單元映射至上述實體單元中的至少一第三實體單元,至少一第三實體單元的每一個記憶胞皆用以儲存第一數目的位元資料且以第一操作模式來程式化資料。其中記憶體控制電路單元用以根據所選擇的至少一邏輯單元的總數來決定參考計數。其中記憶體控制電路單元用以接收第一寫入指令。其中記憶體控制電路單元用以判斷參考計數是否大於門檻值。若參考計數大於門檻值,記憶體控制電路單元指示以第一操作模式來將對應於第一寫入指令的第一資料程式化至上述實體單元中的至少一第一實體單元,其中每一至少一第一實體單元中的每一個記憶胞皆用以儲存第一數目的位元資料。若參考計數不大於門檻值,記憶體控制電路單元指示以第二操作模式來將第一資料程式化至上述實體單元中的至少一第二實體單元,其中每一至少一第二實體單元中的每一個記憶胞皆用以儲存第二數目的位元資料。其中第二數目大於第一數目。
在本發明的一範例實施例中,上述記憶體控制電路單元根據所配置的多個邏輯單元的總邏輯容量與上述實體單元的總實體容量之間的差值來決定參考計數的初始值。
在本發明的一範例實施例中,上述每一至少一第三實體單元所儲存之資料皆為有效資料。
在本發明的一範例實施例中,上述參考計數與可複寫式非揮發性記憶體模組中以第一操作模式來程式化的有效資料之資料量成負相關。
在本發明的一範例實施例中,上述參考計數與至少一邏輯單元之總數成負相關。
在本發明的一範例實施例中,上述記憶體控制電路單元用以指示執行資料整倂程序以將參考計數從第一值調整為第二值,其中第二值大於第一值。其中資料整倂程序包括在上述實體單元中選擇以第一操作模式程式化的有效資料來執行資料整倂程序。資料整倂程序更包括抹除上述實體單元中儲存無效資料的至少一實體單元。
在本發明的一範例實施例中,若上述至少一第三實體單元所儲存之資料經過壓縮,則上述記憶體控制電路單元調整參考計數。
在本發明的一範例實施例中,若上述實體單元中以第二操作模式來程式化之資料經過壓縮,則上述記憶體控制電路單元調整參考計數。
基於上述,本發明所提供的記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置,只會在參考計數大於門檻值時將以第一操作模式將第一資料程式化至第一實體單元,藉此可改善過度利用第一操作模式將資料寫入實體單元而造成寫入速度突然驟降的問題,且因為參考計數而優化資料整併程序。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(rewritable non-volatile memorymodule)與控制器(亦稱, 控制電路)。通常記憶體儲存裝置是與主機系統一起使用, 以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。圖2是根據本發明的一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
請參照圖1,主機系統11一般包括電腦12與輸入/輸出(input/output, I/O)裝置13。電腦12包括微處理器122、隨機存取記憶體(random access memory, RAM)124、系統匯流排126與資料傳輸介面128。輸入/輸出裝置13包括如圖2的滑鼠21、鍵盤22、顯示器23與印表機24。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置13,輸入/輸出裝置13可更包括其他裝置。
在一範例實施例中,記憶體儲存裝置10是透過資料傳輸介面128與主機系統11的其他元件耦接。藉由微處理器122、隨機存取記憶體124與輸入/輸出裝置13的運作可將資料寫入至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。例如,記憶體儲存裝置10可以是如圖2所示的隨身碟25、記憶卡26或固態硬碟(Solid State Drive, SSD)27等的可複寫式非揮發性記憶體儲存裝置。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
一般而言,主機系統11為可實質地與記憶體儲存裝置10配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統11是以電腦系統來作說明,然而,另一範例實施例中,主機系統11可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)31時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡32、MMC卡33、記憶棒(memory stick)34、CF卡35或嵌入式儲存裝置36(如圖3所示)。嵌入式儲存裝置36包括嵌入式多媒體卡(Embedded MMC, eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準、通用序列匯流排(Universal Serial Bus, USB)標準、安全數位(Secure Digital, SD)介面標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card, eMMC)介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元404之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406可以是單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、多階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)、複數階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據本發明的一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。圖6是根據本發明的一範例實施例所繪示的記憶胞陣列的示意圖。
請參照圖5,可複寫式非揮發性記憶體模組406包括記憶胞陣列502、字元線控制電路504、位元線控制電路506、行解碼器(column decoder)508、資料輸入/輸出緩衝器510與控制電路512。
在本範例實施例中,記憶胞陣列502可包括用以儲存資料的多個記憶胞602、多個選擇閘汲極(select gate drain, SGD)電晶體612與多個選擇閘源極(select gate source, SGS)電晶體614、以及連接此些記憶胞的多條位元線604、多條字元線606、與共用源極線608(如圖6所示)。記憶胞602是以陣列方式(或立體堆疊的方式)配置在位元線604與字元線606的交叉點上。當從記憶體控制電路單元404接收到寫入指令或讀取指令時,控制電路512會控制字元線控制電路504、位元線控制電路506、行解碼器508、資料輸入/輸出緩衝器510來寫入資料至記憶胞陣列502或從記憶胞陣列502中讀取資料,其中字元線控制電路504用以控制施予至字元線606的電壓,位元線控制電路506用以控制施予至位元線604的電壓,行解碼器508依據指令中的列位址以選擇對應的位元線,並且資料輸入/輸出緩衝器510用以暫存資料。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以臨界電壓的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,因而改變了記憶胞的臨界電壓。此改變臨界電壓的程序亦稱為“把資料寫入至記憶胞”或“程式化記憶胞”。隨著臨界電壓的改變,記憶胞陣列502的每一個記憶胞具有多個儲存狀態。並且透過讀取電壓可以判斷記憶胞是屬於哪一個儲存狀態,藉此取得記憶胞所儲存的一或多個位元。
圖7是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
請參照圖7,記憶體控制電路單元404包括記憶體管理電路702、主機介面704及記憶體介面706。
記憶體管理電路702用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路702具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路702的操作時,等同於說明記憶體控制電路單元404的操作。
在本範例實施例中,記憶體管理電路702的控制指令是以韌體型式來實作。例如,記憶體管理電路702具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在另一範例實施例中,記憶體管理電路702的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路702具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路702的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在另一範例實施例中,記憶體管理電路702的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路702包括微控制器、實體單元管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。實體單元管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,實體單元管理電路用以管理可複寫式非揮發性記憶體模組406的實體單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令序列以將資料寫入至可複寫式非揮發性記憶體模組406中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令序列以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組406執行相對應的寫入、讀取及抹除等操作。
主機介面704是耦接至記憶體管理電路702並且用以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面704來傳送至記憶體管理電路702。在本範例實施例中,主機介面704是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面704亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面706是耦接至記憶體管理電路702並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面706轉換為可複寫式非揮發性記憶體模組406所能接受的格式。具體來說,若記憶體管理電路702要存取可複寫式非揮發性記憶體模組406,記憶體介面706會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行資料整併程序等等)的相對應的指令序列,在此不一一贅述。這些指令序列例如是由記憶體管理電路702產生並且透過記憶體介面706傳送至可複寫式非揮發性記憶體模組406。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
在一範例實施例中,記憶體控制電路單元404還包括錯誤檢查與校正電路708、緩衝記憶體710及電源管理電路712。
錯誤檢查與校正電路708是耦接至記憶體管理電路702並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路702從主機系統11中接收到寫入指令時,錯誤檢查與校正電路708會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code, ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路702會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路702從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路708會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。
緩衝記憶體710是耦接至記憶體管理電路702並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。
電源管理電路712是耦接至記憶體管理電路702並且用以控制記憶體儲存裝置10的電源。
圖8是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。必須瞭解的是,在此描述可複寫式非揮發性記憶體模組406之實體單元的運作時,以“選擇”、“分組”、“劃分”、“關聯”等詞來操作實體單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體單元進行操作。
可複寫式非揮發性記憶體模組406的記憶胞會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元至少可被分類為下實體程式化單元與上實體程式化單元。例如,在MLC NAND型快閃記憶體中,一記憶胞的最低有效位元(Least Significant Bit,LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit,MSB)是屬於上實體程式化單元。一般來說,下實體程式化單元的寫入速度會快於上實體程式化單元的寫入速度,或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。
在本範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面或是實體扇(sector)。若實體程式化單元為實體頁面,則每一個實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體扇,用以儲存使用者資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼)。在本範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte, B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,並且每一個實體扇的大小也可以是更大或更小。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊。
請參照圖8,記憶體管理電路702可將可複寫式非揮發性記憶體模組406的實體單元800(0)~800(R)邏輯地劃分為多個區域,例如為儲存區802與系統區806。
儲存區802的實體單元是用以儲存來自主機系統11的資料。儲存區802中會儲存有效資料與無效資料。例如,當主機系統要刪除一份有效資料時,被刪除的資料可能還是儲存在儲存區802中,但會被標記為無效資料。在以下範例實施例中,沒有儲存有效資料的實體單元亦被稱為閒置(spare)實體單元。例如,被抹除以後的實體單元便會成為閒置實體單元。此外,在以下範例實施例中,有儲存有效資料的實體單元亦被稱為非閒置(non-spare)實體單元。
在一範例實施例中,若儲存區802或系統區806中有實體單元損壞時,儲存區802中的實體單元也可以用來替換損壞的實體單元。倘若儲存區802中沒有可用的實體單元來替換損壞的實體單元時,則記憶體管理電路702可能會將整個記憶體儲存裝置10宣告為寫入保護(write protect)狀態,而無法再寫入資料。
系統區806的實體單元是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
在一範例實施例中,儲存區802與系統區806的實體單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置10的運作中,實體單元關聯至儲存區802與系統區806的分組關係可能會動態地變動。例如,當系統區806中的實體單元損壞而被儲存區802的實體單元取代時,則原本在儲存區802的實體單元會被關聯至系統區806。
在本範例實施例中,記憶體管理電路702會配置邏輯單元810(0)~810(D)以映射至儲存區802中的實體單元800(0)~800(A)。例如,在本範例實施例中,主機系統11是透過邏輯位址來存取儲存區802中的資料,因此,每一個邏輯單元810(0)~810(D)是指一個邏輯位址。此外,在一範例實施例中,每一個邏輯單元810(0)~810(D)也可以是指一個邏輯扇、一個邏輯頁、一個邏輯抹除單元或者由多個連續或不連續的邏輯位址組成。
在本範例實施例中,每一個邏輯單元810(0)~810(D)是映射至一或多個實體單元。每一個實體單元可以是指一個實體程式化單元、一個實體抹除單元或者由多個連續或不連續的實體位址組成。記憶體管理電路702會將邏輯單元與實體單元之間的映射關係記錄於至少一邏輯-實體映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路702可根據此邏輯-實體映射表來執行對於記憶體儲存裝置10的資料存取。
在本範例實施例中,以可複寫式非揮發性記憶體模組406屬於MLC NAND型快閃記憶體模組為例,記憶體管理電路702可以使用單頁模式(以下亦稱為第一操作模式)或多頁模式(以下亦稱為第二操作模式)來操作可複寫式非揮發性記憶體模組406中的任一實體單元。以第一操作模式操作的實體單元中的每個記憶胞只會儲存一個位元資料(即,第一數目的位元資料),也就是以第一操作模式操作的實體單元只會使用下實體程式化單元來儲存資料。而以第二操作模式操作的實體單元中的每個記憶胞可儲存兩個位元資料(即,第二數目的位元資料),也就是以第二操作模式操作的實體單元可使用下實體程式化單元及上實體程式化單元來儲存資料。
圖9A及圖9B是根據本發明的一範例實施例所繪示之記憶體管理方法的示意圖。
首先,記憶體管理電路702會先根據可複寫式非揮發性記憶體模組406的總邏輯容量與可複寫式非揮發性記憶體模組406的總實體容量之間的差值來決定一個參考計數的初始值。詳細來說,可複寫式非揮發性記憶體模組406的總邏輯容量為邏輯單元810(0)~810(D)的總邏輯容量,而可複寫式非揮發性記憶體模組406的總實體容量為實體單元800(0)~800(A)的總實體容量。記憶體管理電路702會根據總實體容量扣除總邏輯容量所得到的差值來決定參考計數的初始值。這個初始值代表了可以使用第一操作模式寫入實體單元的邏輯資料量的最大值。當記憶體管理電路702已經使用第一操作模式將對應邏輯單元的資料寫入實體單元之後,參考計數會等於初始值扣掉已經以第一操作模式寫入實體單元的邏輯資料量,其中,此邏輯資料量為所有儲存於邏輯單元中的資料的總資料量。換句話說,參考計數代表了當記憶體管理電路702已經使用第一操作模式將邏輯資料寫入實體單元之後,還可以使用第一操作模式寫入實體單元的邏輯資料量。在下文中,參考計數將會使用N來表示。
值得注意的是,在計算N時,可以使用邏輯抹除單元、邏輯程式化單元、邏輯扇或邏輯位址作為N的最小單位。舉例來說,假設可複寫式非揮發性記憶體模組406有120個邏輯單元及128個實體單元。為了方便說明,在本範例實施例中,假設邏輯單元為邏輯抹除單元且每一個邏輯抹除單元包括256個邏輯程式化單元,並假設實體單元為實體抹除單元且每一個實體抹除單元包括256個實體程式化單元。在本範例實施例中,N的初始值會對應於128-120=8個邏輯抹除單元的邏輯容量。例如,若N是以邏輯抹除單元為最小單位,則N的初始值=8;若N是以邏輯程式化單元為最小單位,則N的初始值=8*256=2048。
請參照圖9A,假設目前並沒有邏輯資料以第一操作模式寫入實體單元,則此時N會等於初始值。當記憶體管理電路702從主機系統11接收一寫入指令(以下亦稱為第一寫入指令)時,根據第一寫入指令,記憶體管理電路702會將對應於第一寫入指令的寫入資料(以下亦稱為第一資料)儲存至一個邏輯單元,例如邏輯單元810(0)。在將第一資料儲存至邏輯單元810(0)之後,記憶體管理電路702會判斷N是否大於一門檻值,在此,門檻值設定為0,且N大於門檻值代表了映射到以第一操作模式操作的實體單元的邏輯單元所儲存的邏輯資料量尚未到達N的初始值。
若N大於門檻值,則記憶體管理電路702會指示可複寫式非揮發性記憶體模組406以第一操作模式將第一資料寫入一實體單元,例如,記憶體管理電路702會將邏輯單元810(0)映射到實體單元800(0)並指示可複寫式非揮發性記憶體模組406將第一資料以第一操作模式寫入實體單元800(0)。此時,由於邏輯單元810(0)所映射到的實體單元800(0)中的資料是以第一操作模式來寫入,因此邏輯單元810(0)會被視為符合第一條件的邏輯單元。
若N不大於門檻值,也就是N=0,代表了已使用第一操作模式寫入實體單元的邏輯資料量已達到N的初始值,因此記憶體管理電路702會以第二操作模式將第一資料寫入一實體單元,例如,記憶體管理電路702會將邏輯單元810(0)映射到實體單元800(1)並將第一資料以第二操作模式寫入實體單元800(1),如圖9B所示。
以上已經說明了當記憶體管理電路702要將資料寫入實體單元時,會根據N大於或不大於門檻值,判斷將資料以第一操作模式或第二操作模式寫入實體單元。
在一範例實施例中,記憶體管理電路702選擇符合第一條件的至少一邏輯單元,並根據所選擇的邏輯單元的總數來決定N。例如,在本範例實施例中,符合第一條件的邏輯單元只有邏輯單元810(0),因此記憶體管理電路702會選擇邏輯單元810(0),並根據所選擇的邏輯單元810(0)來決定N,其中N的大小會跟這些被選擇的符合第一條件的邏輯單元的總數成負相關。在圖9A中,由於相當於邏輯單元810(0)的容量的邏輯資料已經以第一操作模式寫入實體單元800(0),使得還可以使用第一操作模式寫入實體單元的邏輯資料量變少了,因此記憶體管理電路702會根據邏輯單元810(0)的容量,將N重新調整為N減掉邏輯單元810(0)的容量。換句話說,N也會與以第一操作模式來寫入的有效資料的資料量成負相關。又例如在圖9B中,在第一資料寫入實體單元800(1)之後,由於以第一操作模式寫入實體單元的邏輯資料量沒有改變,也就是映射到儲存有以第一操作模式來程式化的資料的實體單元的邏輯單元的總數沒有改變(符合第一條件的邏輯單元的總數沒有改變),因此N的值也不會改變。
在另一方面,若記憶體管理電路702接收到一指令指示刪除儲存於某一個邏輯單元的資料時,記憶體管理電路702會先判斷此邏輯單元所映射的實體單元是用第一操作模式來程式化資料或用第二操作模式來程式化資料。若此邏輯單元所映射到的實體單元是用第一操作模式來程式化資料,則記憶體管理電路702會將此邏輯單元所映射到的實體單元中的資料設成無效資料並刪除此邏輯單元中的資料;由於可使用第一操作模式寫入實體單元的邏輯資料量變多了,記憶體管理電路702會將N調整為N加上此邏輯單元的容量。若此邏輯單元所映射到的實體單元是用第二操作模式來程式化資料,則記憶體管理電路702會將此邏輯單元所映射到的實體單元中的資料設成無效資料並刪除此邏輯單元中的資料;然而,由於可使用第一操作模式寫入實體單元的邏輯資料量並沒有改變,因此N的值並不會改變。
值得注意的是,在一範例實施例中,記憶體管理電路702可對可複寫式非揮發性記憶體模組406執行資料整倂程序。例如,此資料整併程序可在可複寫式非揮發性記憶體模組406處於閒置狀態時或任意時間點執行。在資料整倂程序中,記憶體管理電路702會從至少一個實體單元提取有效資料,將有效資料收集到另一實體單元中,並且抹除有效資料皆已被提取出來的實體單元。例如,記憶體管理電路702可從可複寫式非揮發性記憶體模組406中找出部分容量儲存有效資料(以下又稱為第二資料)且其他容量都儲存無效資料的實體單元,並且判斷第二資料是以第一操作模式或第二操作模式來程式化。若第二資料是以第一操作模式來程式化,則記憶體管理電路702會將第二資料搬移到另一實體單元中進行儲存(即,將第二資料以第一操作模式程式化到另一實體單元),並抹除原本儲存第二資料的實體單元。也就是說,在一範例實施例的資料整倂程序中,記憶體管理電路702會在實體單元中選擇以第一操作模式程式化的有效資料來執行資料整倂程序。假設資料整併程序將一筆第二資料從某一個實體抹除單元搬移到某一個實體程式化單元且此實體抹除單元被抹除,則在資料整併程序之前N的值為第一值,並且在資料整併程序之後,記憶體管理電路702會將N的值調整為第二值。其中第二值為對應於第一值加上此被抹除之實體抹除單元的容量再扣掉儲存第二資料的實體程式化單元的容量,故第二值會大於第一值。若第二資料是以第二操作模式來程式化,則記憶體管理電路702將不會搬移第二資料。但是,在另一資料整併程序中,若第二資料是以第二操作模式來程式化,則第二資料也可能被搬移。
值得注意的是,在本範例實施例中,相較於一般資料整併程序會直接對有效資料量最少的實體單元作資料整併,本範例實施例的資料整併程序會確認此實體單元是使用第一操作模式操作才會對其進行資料整併操作。另外,也可找出有效資料量最少的實體單元與上述步驟一併執行。例如,若記憶體管理電路702找到了一個有效資料量最少的實體單元,但是此實體單元是使用第二操作模式操作時,則記憶體管理電路702可能不會對此實體單元進行資料整倂程序,反而會找出有效資料量次少可是使用第一操作模式操作的實體單元來進行資料整倂程序。
圖10A~10D是根據本發明的另一實施例所繪示之記憶體管理方法的示意圖。
當記憶體管理電路702將資料從邏輯單元寫入實體單元時,可先對邏輯單元的資料進行壓縮之後再寫入實體單元。為了說明方便,以下將假設記憶體管理電路702可以使用以下四種壓縮解析度來壓縮資料:1k、2k、3k及4k。其中,1k壓縮解析度代表將每4k位元組的資料壓縮成1k位元組,也就是將資料壓縮成壓縮前資料的1/4大小;2k壓縮解析度代表將每4k位元組的資料壓縮成2k位元組,也就是將資料壓縮成壓縮前資料的1/2大小;3k壓縮解析度代表將每4k位元組的資料壓縮成3k位元組,也就是將資料壓縮成壓縮前資料的3/4大小;4k壓縮解析度代表並未對資料進行壓縮。
在一範例實施例中,記憶體管理電路702會根據映射到以第一操作模式操作的實體單元的邏輯單元的總數與以第一操作模式操作的實體單元所儲存的資料是否經過壓縮來調整N,及/或根據以第二操作模式操作的實體單元所儲存的資料是否經過壓縮來調整N。例如,記憶體管理電路702會判斷要從邏輯單元寫入實體單元的資料是否進行壓縮,若從邏輯單元寫入實體單元的資料並未進行壓縮,則N的調整方式已經在圖9A及圖9B說明,因此就不再贅述。若從邏輯單元寫入實體單元的資料已進行壓縮,記憶體管理電路702會進一步判斷壓縮解析度,例如,判斷壓縮解析度為2k或1k,並將N作出對應的調整。當記憶體管理電路702對欲寫入以第一操作模式操作的實體單元的資料進行壓縮並將壓縮後的資料以第一操作模式寫入實體單元之後,N可能會維持不變或增加。當記憶體管理電路702對欲寫入以第二操作模式操作的實體單元的資料進行壓縮並將壓縮後的資料以第二操作模式寫入實體單元之後,N也可能會維持不變或增加。也就是說,若第一操作模式操作的實體單元所儲存之資料經過壓縮,則N可對應調整。若第二操作模式操作的實體單元中以該第二操作模式來程式化之資料經過壓縮,N也可對應調整。N的詳細調整方式將於圖10A~10D中舉例說明。
在圖10A中,假設記憶體管理電路702以2k的解析度對邏輯單元810(0)的資料進行壓縮並將壓縮後的資料以第一操作模式寫入一實體單元,例如寫入實體單元800(0)。由於壓縮後資料的大小為壓縮前資料的1/2且實體單元800(0)以第一操作模式來操作只能使用其1/2的容量,因此壓縮後的資料剛好可寫入實體單元800(0)的所有下實體程式化單元中,如圖10A所示。因為在邏輯單元810(0)的資料並未壓縮的情況下將邏輯單元810(0)的資料以第一操作模式寫入一實體單元時,其資料量必須以兩個實體單元的所有下實體程式化單元來儲存,例如以實體單元800(0)及實體單元800(1)的所有下實體程式化單元來儲存,而邏輯單元810(0)及實體單元800(0)及實體單元800(1)的映射關係如圖10A的實線及虛線所示。因此在以2k解析度寫入壓縮資料的情況中,相對於並未壓縮的情況多出了一個實體單元800(1)的所有下實體程式化單元的空間,使得另一個邏輯單元,例如邏輯單元810(1),可使用2k解析度對其資料進行壓縮以第一操作模式寫入實體單元800(1),因此在以2k解析度壓縮邏輯單元810(0)的資料並寫入實體單元800(0)之後,N的值並不會改變。
在圖10B中,假設記憶體管理電路702以1k的解析度對邏輯單元810(0)的資料進行壓縮並將壓縮後的資料以第一操作模式寫入一實體單元,例如寫入實體單元800(0)。由於壓縮後資料的大小為壓縮前資料的1/4,因此壓縮後的資料會佔有實體單元800(0)的1/4容量,如圖10B所示。由於在邏輯單元810(0)的資料進行壓縮並以第一操作模式寫入實體單元800(0)之後,實體單元800(0)還有1/4容量的下實體程式化單元的可用空間,使得另一個邏輯單元,例如邏輯單元810(1),可以1k的解析度對邏輯單元810(1)的資料進行壓縮並將壓縮後的資料以第一操作模式寫入實體單元800(0)的剩餘空間,如圖10B所示,因此N的值會小幅增加。
在圖10C中,假設記憶體管理電路702以2k的解析度對邏輯單元810(0)的資料進行壓縮並將壓縮後的資料以第二操作模式寫入一實體單元,例如寫入實體單元800(2)。由於資料已經被壓縮成原本大小的1/2,因此將邏輯單元810(0)的資料全部寫入實體單元800(2)之後,實體單元800(2)還有1/2的可用容量,而這些容量可以用於以第一操作模式儲存資料,因此N的值會隨之增加。但是,以第二操作模式操作的實體單元800(2)的1/2容量,用於以第一操作模式操作時,相當於只有實體單元800(2)的1/4容量(以第一操作模式操作的實體單元的記憶胞儲存位元數1為以第二操作模式操作的實體單元的記憶胞儲存位元數2的一半),因此N的值會調整為N加上實體單元800(2)的1/4容量。
值得注意的是,雖然以上說明了經由資料壓縮產生可以第一操作模式操作的實體單元800(2)的1/4的容量,但這並不代表記憶體管理電路702會用第一操作模式操作實體單元800(2)中並未儲存有效資料的容量,也就是說同一個實體單元不會使用不同的寫入模式來操作。例如,當兩個邏輯單元的資料都被以2k的解析度壓縮資料並以第二操作模式寫入同一個實體單元時,則另一個尚未儲存有效資料的實體單元就可以使用第一操作模式來操作。
在圖10D中,假設記憶體管理電路702以1k的解析度對邏輯單元810(0)的資料進行壓縮並將壓縮後的資料以第二操作模式寫入一實體單元,例如寫入實體單元800(2)。由於資料已經被壓縮成原本大小的1/4,因此將邏輯單元810(0)的資料全部寫入實體單元800(2)之後,實體單元800(2)還有3/4的可用容量,而這些容量可以用於以第一操作模式儲存資料,因此N的值會隨之增加。但是,以第二操作模式操作的實體單元800(2)的3/4容量,用於以第一操作模式操作時,相當於只有實體單元800(2)的3/8容量(以第一操作模式操作的實體單元的記憶胞儲存位元數1為以第二操作模式操作的實體單元的記憶胞儲存位元數2的一半),因此N的值會調整為N加上實體單元800(2)的3/8容量。
圖11是根據本發明的一範例實施例所繪示之記憶體管理方法的流程圖。
請參照圖11,在步驟S1101中,選擇符合第一條件的至少一邏輯單元,其中符合第一條件的至少一邏輯單元映射至多個實體單元中的至少一第三實體單元,所述至少一第三實體單元的每一個記憶胞皆用以儲存第一數目的位元資料且以第一操作模式來程式化資料。在步驟S1103中,根據所選擇的至少一邏輯單元的總數來決定參考計數。在步驟S1105中,接收第一寫入指令。在步驟S1107中,判斷參考計數是否大於門檻值。若參考計數大於門檻值,在步驟S1109中,以第一操作模式來將對應於第一寫入指令的第一資料程式化至實體單元中的至少一第一實體單元,其中所述至少一第一實體單元的每一者中的每一個記憶胞皆用以儲存第一數目的位元資料。若參考計數不大於門檻值,在步驟S1111中,以第二操作模式來將第一資料程式化至所述實體單元中的至少一第二實體單元,其中所述至少一第二實體單元的每一者中的每一個記憶胞皆用以儲存第二數目的位元資料。其中第二數目大於第一數目。
綜上所述,本發明所提供的記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置,只會在參考計數大於門檻值時以第一操作模式將欲儲存之資料程式化至實體單元,藉此可改善過度利用第一操作模式將資料寫入實體單元而造成的寫入速度突然驟降的問題,且因為參考計數而優化資料整併程序。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧電腦
122‧‧‧微處理器
124‧‧‧隨機存取記憶體
126‧‧‧系統匯流排
128‧‧‧資料傳輸介面
13‧‧‧輸入/輸出裝置
21‧‧‧滑鼠
22‧‧‧鍵盤
23‧‧‧顯示器
24‧‧‧印表機
25‧‧‧隨身碟
26‧‧‧記憶卡
27‧‧‧固態硬碟
31‧‧‧數位相機
32‧‧‧SD卡
33‧‧‧MMC卡
34‧‧‧記憶棒
35‧‧‧CF卡
36‧‧‧嵌入式儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
502‧‧‧記憶胞陣列
504‧‧‧字元線控制電路
506‧‧‧位元線控制電路
508‧‧‧行解碼器
510‧‧‧資料輸入/輸出緩衝器
512‧‧‧控制電路
602‧‧‧記憶胞
604‧‧‧位元線
606‧‧‧字元線
608‧‧‧共用源極線
612、614‧‧‧電晶體
702‧‧‧記憶體管理電路
704‧‧‧主機介面
706‧‧‧記憶體介面
708‧‧‧錯誤檢查與校正電路
710‧‧‧緩衝記憶體
712‧‧‧電源管理電路
800(0)~800(R)‧‧‧實體單元
810(0)~810(D)‧‧‧邏輯單元
802‧‧‧儲存區
806‧‧‧系統區
S1101、S1103、S1105、S1107、S1109、S1111‧‧‧記憶體管理方法的步驟
圖1 是根據本發明的一範例實施例所繪示的主機系統與記憶 體儲存裝置的示意圖。 圖2 是根據本發明的一範例實施例所繪示的電腦、輸入/輸出 裝置與記憶體儲存裝置的示意圖。 圖3 是根據本發明的一範例實施例所繪示的主機系統與記憶 體儲存裝置的示意圖。 圖4 是繪示圖1 所示的記憶體儲存裝置的概要方塊圖。 圖5 是根據本發明的一範例實施例所繪示的可複寫式非揮發 性記憶體模組的概要方塊圖。 圖6 是根據本發明的一範例實施例所繪示的記憶胞陣列的示 意圖。 圖7 是根據本發明的一範例實施例所繪示的記憶體控制電路 單元的概要方塊圖。 圖8 是根據本發明的一範例實施例所繪示之管理可複寫式非 揮發性記憶體模組的示意圖。 圖9A 及圖9B 是根據本發明的一範例實施例所繪示之記憶體 管理方法的示意圖。 圖10A~10D 是根據本發明的另一範例實施例所繪示之記憶 體管理方法的示意圖。 圖11 是根據本發明的一範例實施例所繪示之記憶體管理方 法的流程圖。
S1101、S1103、S1105、S1107、S1109、S1111‧‧‧記憶體管理方法的步驟

Claims (24)

  1. 一種記憶體管理方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體單元,該記憶體管理方法包括: 選擇符合一第一條件的至少一邏輯單元,其中符合該第一條件的該至少一邏輯單元映射至該些實體單元中的至少一第三實體單元,該至少一第三實體單元的每一個記憶胞皆用以儲存一第一數目的位元資料且以一第一操作模式來程式化資料; 根據所選擇的該至少一邏輯單元的總數來決定一參考計數; 接收一第一寫入指令; 判斷該參考計數是否大於一門檻值; 若該參考計數大於該門檻值,以一第一操作模式來將對應於該第一寫入指令的一第一資料程式化至該些實體單元中的至少一第一實體單元,其中每一該至少一第一實體單元中的每一個記憶胞皆用以儲存該第一數目的位元資料;以及 若該參考計數不大於該門檻值,以一第二操作模式來將該第一資料程式化至該些實體單元中的至少一第二實體單元,其中每一該至少一第二實體單元中的每一個記憶胞皆用以儲存一第二數目的位元資料, 其中該第二數目大於該第一數目。
  2. 如申請專利範圍第1項所述的記憶體管理方法,更包括: 根據所配置的多個邏輯單元的一總邏輯容量與該些實體單元的一總實體容量之間的一差值來決定該參考計數的一初始值。
  3. 如申請專利範圍第1項所述的記憶體管理方法,其中每一該至少一第三實體單元所儲存之資料皆為有效資料。
  4. 如申請專利範圍第1項所述的記憶體管理方法,其中該參考計數與該可複寫式非揮發性記憶體模組中以該第一操作模式來程式化的有效資料之資料量成負相關。
  5. 如申請專利範圍第1項所述的記憶體管理方法,其中該參考計數與該至少一邏輯單元之總數成負相關。
  6. 如申請專利範圍第1項所述的記憶體管理方法,更包括: 執行一資料整倂程序以將該參考計數從一第一值調整為一第二值,其中該第二值大於該第一值, 其中該資料整倂程序包括: 在該些實體單元中選擇以該第一操作模式程式化的有效資料來執行該資料整倂程序;以及 抹除該些實體單元中儲存無效資料的至少一實體單元。
  7. 如申請專利範圍第1項所述的記憶體管理方法,更包括: 若該至少一第三實體單元所儲存之資料經過壓縮,則調整該參考計數。
  8. 如申請專利範圍第1項所述的記憶體管理方法,更包括: 若該些實體單元中以該第二操作模式來程式化之資料經過壓縮,則調整該參考計數。
  9. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體單元;以及 一記憶體管理電路,耦接至該主機介面與該記憶體介面, 其中該記憶體管理電路用以選擇符合一第一條件的至少一邏輯單元,其中符合該第一條件的該至少一邏輯單元映射至該些實體單元中的至少一第三實體單元,該至少一第三實體單元的每一個記憶胞皆用以儲存一第一數目的位元資料且以一第一操作模式來程式化資料, 其中該記憶體管理電路用以根據所選擇的該至少一邏輯單元的總數來決定一參考計數, 其中該記憶體管理電路用以接收一第一寫入指令, 其中該記憶體管理電路用以判斷該參考計數是否大於一門檻值, 若該參考計數大於該門檻值,該記憶體管理電路指示以一第一操作模式來將對應於該第一寫入指令的一第一資料程式化至該些實體單元中的至少一第一實體單元,其中每一該至少一第一實體單元中的每一個記憶胞皆用以儲存該第一數目的位元資料, 若該參考計數不大於該門檻值,該記憶體管理電路指示以一第二操作模式來將該第一資料程式化至該些實體單元中的至少一第二實體單元,其中每一該至少一第二實體單元中的每一個記憶胞皆用以儲存一第二數目的位元資料, 其中該第二數目大於該第一數目。
  10. 如申請專利範圍第9項所述的記憶體控制電路單元,其中該記憶體管理電路根據所配置的多個邏輯單元的一總邏輯容量與該些實體單元的一總實體容量之間的一差值來決定該參考計數的一初始值。
  11. 如申請專利範圍第9項所述的記憶體控制電路單元,其中每一該至少一第三實體單元所儲存之資料皆為有效資料。
  12. 如申請專利範圍第9項所述的記憶體控制電路單元,其中該參考計數與該可複寫式非揮發性記憶體模組中以該第一操作模式來程式化的有效資料之資料量成負相關。
  13. 如申請專利範圍第9項所述的記憶體控制電路單元,其中該參考計數與該至少一邏輯單元之總數成負相關。
  14. 如申請專利範圍第9項所述的記憶體控制電路單元,其中該記憶體管理電路用以指示執行一資料整倂程序以將該參考計數從一第一值調整為一第二值,其中該第二值大於該第一值, 其中該資料整倂程序包括: 在該些實體單元中選擇以該第一操作模式程式化的有效資料來執行該資料整倂程序;以及 抹除該些實體單元中儲存無效資料的至少一實體單元。
  15. 如申請專利範圍第9項所述的記憶體控制電路單元,其中若該至少一第三實體單元所儲存之資料經過壓縮,則該記憶體管理電路調整該參考計數。
  16. 如申請專利範圍第9項所述的記憶體控制電路單元,其中若該些實體單元中以該第二操作模式來程式化之資料經過壓縮,則該記憶體管理電路根據調整該參考計數。
  17. 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,包括多個實體單元;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以選擇符合一第一條件的至少一邏輯單元,其中符合該第一條件的該至少一邏輯單元映射至該些實體單元中的至少一第三實體單元,該至少一第三實體單元的每一個記憶胞皆用以儲存一第一數目的位元資料且以一第一操作模式來程式化資料, 其中該記憶體控制電路單元用以根據所選擇的該至少一邏輯單元的總數來決定一參考計數, 其中該記憶體控制電路單元用以接收一第一寫入指令, 其中該記憶體控制電路單元用以判斷該參考計數是否大於一門檻值, 若該參考計數大於該門檻值,該記憶體控制電路單元指示以一第一操作模式來將對應於該第一寫入指令的一第一資料程式化至該些實體單元中的至少一第一實體單元,其中每一該至少一第一實體單元中的每一個記憶胞皆用以儲存該第一數目的位元資料, 若該參考計數不大於該門檻值,該記憶體控制電路單元指示以一第二操作模式來將該第一資料程式化至該些實體單元中的至少一第二實體單元,其中每一該至少一第二實體單元中的每一個記憶胞皆用以儲存一第二數目的位元資料, 其中該第二數目大於該第一數目。
  18. 如申請專利範圍第17項所述的記憶體儲存裝置,其中該記憶體控制電路單元根據所配置的多個邏輯單元的一總邏輯容量與該些實體單元的一總實體容量之間的一差值來決定該參考計數的一初始值。
  19. 如申請專利範圍第17項所述的記憶體儲存裝置,其中每一該至少一第三實體單元所儲存之資料皆為有效資料。
  20. 如申請專利範圍第17項所述的記憶體儲存裝置,其中該參考計數與該可複寫式非揮發性記憶體模組中以該第一操作模式來程式化的有效資料之資料量成負相關。
  21. 如申請專利範圍第17項所述的記憶體儲存裝置,其中該參考計數與該至少一邏輯單元之總數成負相關。
  22. 如申請專利範圍第17項所述的記憶體儲存裝置,其中該記憶體控制電路單元用以指示執行一資料整倂程序以將該參考計數從一第一值調整為一第二值,其中該第二值大於該第一值, 其中該資料整倂程序包括: 在該些實體單元中選擇以該第一操作模式程式化的有效資料來執行該資料整倂程序;以及 抹除該些實體單元中儲存無效資料的至少一實體單元。
  23. 如申請專利範圍第17項所述的記憶體儲存裝置,其中若該至少一第三實體單元所儲存之資料經過壓縮,則該記憶體控制電路單元調整該參考計數。
  24. 如申請專利範圍第17項所述的記憶體儲存裝置,其中若該些實體單元中以該第二操作模式來程式化之資料經過壓縮,則該記憶體控制電路單元調整該參考計數。
TW104126901A 2015-08-18 2015-08-18 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 TWI554885B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW104126901A TWI554885B (zh) 2015-08-18 2015-08-18 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US14/854,059 US10503433B2 (en) 2015-08-18 2015-09-15 Memory management method, memory control circuit unit and memory storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104126901A TWI554885B (zh) 2015-08-18 2015-08-18 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TWI554885B TWI554885B (zh) 2016-10-21
TW201709063A true TW201709063A (zh) 2017-03-01

Family

ID=57848388

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104126901A TWI554885B (zh) 2015-08-18 2015-08-18 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置

Country Status (2)

Country Link
US (1) US10503433B2 (zh)
TW (1) TWI554885B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10310739B2 (en) 2017-07-07 2019-06-04 Phison Electronics Corp. Memory management method, memory control circuit unit and memory storage device
TWI700635B (zh) * 2018-04-26 2020-08-01 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442299B (zh) * 2018-05-03 2022-12-13 群联电子股份有限公司 数据写入方法、存储器控制电路单元以及存储器储存装置
TWI725416B (zh) * 2019-04-23 2021-04-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
CN111858389B (zh) * 2019-04-30 2023-07-04 群联电子股份有限公司 数据写入方法、存储器控制电路单元以及存储器存储装置
CN112051963B (zh) * 2019-06-06 2023-06-13 群联电子股份有限公司 数据写入方法、存储器控制电路单元以及存储器存储装置
CN114333930B (zh) * 2021-12-23 2024-03-08 合肥兆芯电子有限公司 多通道存储器存储装置、控制电路单元及其数据读取方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140739B2 (en) * 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
US8392687B2 (en) * 2009-01-21 2013-03-05 Micron Technology, Inc. Solid state memory formatting
US20110107042A1 (en) * 2009-11-03 2011-05-05 Andrew Herron Formatting data storage according to data classification
TWI447735B (zh) * 2010-02-05 2014-08-01 Phison Electronics Corp 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統
TWI459197B (zh) * 2011-04-21 2014-11-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI451249B (zh) * 2011-12-15 2014-09-01 Phison Electronics Corp 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
JP6073471B2 (ja) * 2013-05-17 2017-02-01 株式会社日立製作所 ストレージ装置
TWI498902B (zh) * 2013-11-28 2015-09-01 Phison Electronics Corp 資料管理方法、記憶體儲存裝置及記憶體控制電路單元
US9099185B2 (en) * 2013-12-20 2015-08-04 Seagate Technology Llc Using different programming modes to store data to a memory cell
US9495101B2 (en) * 2014-01-29 2016-11-15 Sandisk Technologies Llc Methods for balancing write operations of SLC blocks in different memory areas and apparatus implementing the same
US9652153B2 (en) * 2014-09-02 2017-05-16 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by reducing a count of logical addresses

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10310739B2 (en) 2017-07-07 2019-06-04 Phison Electronics Corp. Memory management method, memory control circuit unit and memory storage device
TWI681295B (zh) * 2017-07-07 2020-01-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI700635B (zh) * 2018-04-26 2020-08-01 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置

Also Published As

Publication number Publication date
TWI554885B (zh) 2016-10-21
US10503433B2 (en) 2019-12-10
US20170052704A1 (en) 2017-02-23

Similar Documents

Publication Publication Date Title
CN111078149B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
TWI575374B (zh) 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元
TWI554885B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI592799B (zh) 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置
US9530509B2 (en) Data programming method, memory storage device and memory control circuit unit
TWI688953B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN107590080B (zh) 映射表更新方法、存储器控制电路单元及存储器存储装置
TW202009711A (zh) 資料整併方法、記憶體儲存裝置及記憶體控制電路單元
TWI650639B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
CN111078146B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
TWI796882B (zh) 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元
CN113885808B (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
CN112860194B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
TW201526006A (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN110837339A (zh) 数据整并方法、存储器存储装置及存储器控制电路单元
TWI631460B (zh) 資料讀取方法、記憶體控制電路單元與記憶體儲存裝置
CN110308876B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
US20230021668A1 (en) Temperature control method, memory storage apparatus, and memory control circuit unit
TW201643722A (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI554884B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN110096215B (zh) 存储器管理方法、存储器储存装置及存储器控制电路单元
CN112799601A (zh) 有效数据合并方法、存储器存储装置及控制电路单元
CN111610937A (zh) 数据写入方法、存储器存储装置及存储器控制电路单元
CN114527941B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
TWI823792B (zh) 映射表更新方法、記憶體儲存裝置及記憶體控制電路單元