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

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

Info

Publication number
TWI536166B
TWI536166B TW104102669A TW104102669A TWI536166B TW I536166 B TWI536166 B TW I536166B TW 104102669 A TW104102669 A TW 104102669A TW 104102669 A TW104102669 A TW 104102669A TW I536166 B TWI536166 B TW I536166B
Authority
TW
Taiwan
Prior art keywords
unit
memory
devices
data
control circuit
Prior art date
Application number
TW104102669A
Other languages
English (en)
Other versions
TW201627867A (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 TW104102669A priority Critical patent/TWI536166B/zh
Priority to US14/645,368 priority patent/US9946476B2/en
Application granted granted Critical
Publication of TWI536166B publication Critical patent/TWI536166B/zh
Publication of TW201627867A publication Critical patent/TW201627867A/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/061Improving I/O performance
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置
本發明是有關於一種記憶體管理方法,且特別是有關於一種用於管理具有多個裝置的可複寫式非揮發性記憶體模組的記憶體管理方法以及使用此方法的記憶體控制電路單元與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體做為儲存媒體的記憶體儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
一般來說,在對可複寫式非揮發性記憶體模組寫入檔案的過程中,檔案系統資料(例如,檔案配置表,File Allocation Table,FAT)和使用者資料(例如,使用者的文件資料、影像資料等...)會交錯寫入至固態硬碟中。由於檔案系統資料的讀寫頻率相較於使用者資料的讀寫頻率高,因此頻繁地更新檔案系統資料會導致對應檔案系統資料的實體抹除單元與其所屬的裝置的磨損程度快速增加。因此,用以儲存檔案系統資料的實體抹除單元與其所屬的裝置的磨損程度會高於沒有儲存檔案系統資料的實體抹除單元與其所屬的裝置的磨損程度,進而造成可複寫式非揮發性記憶體中的多個裝置的磨損程度會有明顯的差異。基於上述,如何平均可複寫式非揮發性記憶體中的多個裝置的磨損程度,以避免特定的裝置過度磨損所造成的整個可複寫式非揮發性記憶體模組的毀損,為本領域人員所致力的目標。
本發明提供一種記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置,其可藉由均衡可複寫式非揮發性記憶體模組的裝置的磨損程度來延長記憶體儲存裝置的使用壽命。
本發明的一範例實施例提供用於可複寫式非揮發性記憶體模組的一種記憶體管理方法。所述可複寫式非揮發性記憶體模組具有多個裝置,並且每一裝置具有多個實體抹除單元。所述記憶體管理方法包括配置多個邏輯單元,其中此些邏輯單元至少被分為第一邏輯單元組與第二邏輯單元組;將第一邏輯單元組的邏輯單元映射至此些裝置之中的第一裝置的實體抹除單元並且將第 二邏輯單元組的邏輯單元映射至此些裝置之中的第二裝置的實體抹除單元;從主機系統接收儲存至第一邏輯單元組中的至少一第一邏輯單元的第一資料,並且將第一資料寫入至映射至至少一第一邏輯單元的第一裝置的至少一第一實體抹除單元。所述記憶體管理方法還包括倘若此些裝置的運作狀態符合預定條件,執行對應預定條件的重新映射操作。
在本發明的一範例實施例中,其中上述倘若此些裝置的運作狀態符合預定條件,執行對應預定條件的重新映射操作的步驟包括記錄每一裝置的磨損程度值;倘若經由第一裝置的磨損程度值減去第二裝置的磨損程度值所獲得的差值大於預定磨損門檻值時,判定此些裝置的運作狀態符合第一預定條件,並且執行對應第一預定條件的第一重新映射操作。所述第一重新映射操作包括將第一資料儲存至第二裝置的至少一第一實體抹除單元,並且將第一邏輯單元組的至少一第一邏輯單元重新映射至第二裝置的至少一第一實體抹除單元。
在本發明的一範例實施例中,其中上述執行第一重新映射操作的步驟是在第一裝置的至少一第一實體抹除單元已被寫滿且從主機系統接收到更新第一資料的寫入指令時被執行。
在本發明的一範例實施例中,其中上述倘若此些裝置的運作狀態符合預定條件,執行對應預定條件的重新映射操作的步驟包括倘若從主機系統接收到格式化指令或清除所有資料指令,判定此些裝置的運作狀態符合第二預定條件,並且執行對應第二 預定條件的第二重新映射操作。所述第二重新映射操作包括將第一邏輯單元組的至少一第一邏輯單元重新映射至第二裝置的至少一第一實體抹除單元,將第一邏輯單元組的其他邏輯單元重新映射至第二裝置的其他實體抹除單元,並且將第二邏輯單元組的邏輯單元重新映射至第一裝置的實體抹除單元。
在本發明的一範例實施例中,所述記憶體管理方法還包括記錄每一裝置的磨損程度值,並且所述第二裝置的磨損程度值小於此些裝置之中其他裝置的磨損程度值。
在本發明的一範例實施例中,所述重新映射操作更包括依據第二裝置的每一實體抹除單元的抹除次數選擇第二裝置的至少一第一實體抹除單元,其中第二裝置的至少一第一實體抹除單元的抹除次數小於第二裝置的其他實體抹除單元的抹除次數。
在本發明的一範例實施例中,上述記錄每一裝置的磨損程度值的步驟包括:記錄每一裝置的每一實體抹除單元的抹除次數;依據每一裝置的每一實體抹除單元的抹除次數來計算每一裝置的平均抹除次數;以及將每一裝置的平均抹除次數做為每一裝置的磨損程度值。
在本發明的一範例實施例中,所述第一資料的更新頻率大於第二資料的更新頻率。所述第二資料是被儲存在此些實體抹除單元中非儲存第一資料的其他實體抹除單元的資料。
本發明的一範例實施例提供用於可複寫式非揮發性記憶體模組的一種記憶體控制電路單元,其中可複寫式非揮發性記憶 體模組具有多個裝置,並且每一裝置具有多個實體抹除單元。所述記憶體控制電路單元包括:主機介面、記憶體介面與記憶體管理電路。主機介面耦接至主機系統。記憶體介面耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面。記憶體管理電路用以配置多個邏輯單元,其中此些邏輯單元包括第一邏輯單元組與第二邏輯單元組。記憶體管理電路更用以將第一邏輯單元組的邏輯單元映射至此些裝置之中的第一裝置的實體抹除單元並且將第二邏輯單元組的邏輯單元映射至此些裝置之中的第二裝置的實體抹除單元,其中記憶體管理電路更用以從主機系統接收儲存至第一邏輯單元組中的至少一第一邏輯單元的第一資料,並且將第一資料寫入至映射至至少一第一邏輯單元的第一裝置的至少一第一實體抹除單元。以及,倘若此些裝置的運作狀態符合預定條件,記憶體管理電路更用以執行對應預定條件的重新映射操作。
在本發明的一範例實施例中,記憶體管理電路記錄每一裝置的磨損程度值。倘若經由第一裝置的磨損程度值減去第二裝置的磨損程度值所獲得的差值大於預定磨損門檻值時,記憶體管理電路判定此些裝置的運作狀態符合第一預定條件,並且執行對應第一預定條件的第一重新映射操作。所述第一重新映射操作包括將第一資料儲存至第二裝置的至少一第一實體抹除單元,並且將第一邏輯單元組的至少一第一邏輯單元重新映射至第二裝置的至少一第一實體抹除單元。
在本發明的一範例實施例中,其中上述記憶體管理電路執行第一重新映射操作的運作是在第一裝置的至少一第一實體抹除單元已被寫滿且記憶體管理電路從主機系統接收到更新第一資料的寫入指令時被執行。
在本發明的一範例實施例中,倘若記憶體管理電路從主機系統接收到格式化指令或清除所有資料指令,記憶體管理電路判定此些裝置的運作狀態符合第二預定條件,並且執行對應第二預定條件的第二重新映射操作。所述第二重新映射操作包括記憶體管理電路將第一邏輯單元組的至少一第一邏輯單元重新映射至第二裝置的至少一第一實體抹除單元,將第一邏輯單元組的其他邏輯單元重新映射至第二裝置的其他實體抹除單元,並且將第二邏輯單元組的邏輯單元重新映射至第一裝置的實體抹除單元。
在本發明的一範例實施例中,在上述記憶體管理電路更用以執行第二重新映射操作的運作中,記憶體管理電路依據第二裝置的每一實體抹除單元的抹除次數選擇第二裝置的至少一第一實體抹除單元,其中第二裝置的至少一第一實體抹除單元的抹除次數小於第二裝置的其他實體抹除單元的抹除次數。
在本發明的一範例實施例中,在上述記憶體管理電路更用以記錄每一裝置的磨損程度值的運作中,記憶體管理電路記錄每一裝置的每一實體抹除單元的抹除次數,依據每一裝置的每一實體抹除單元的抹除次數來計算每一裝置的平均抹除次數,並且將每一裝置的平均抹除次數做為每一裝置的磨損程度值。
本發明的一範例實施例提供一種記憶體儲存裝置,其包括:連接介面單元、可複寫式非揮發性記憶體模組與記憶體控制電路單元。連接介面單元耦接至主機系統。可複寫式非揮發性記憶體模組具有多個裝置,其中每一裝置具有多個實體抹除單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。記憶體控制電路單元用以配置多個邏輯單元,其中此些邏輯單元包括第一邏輯單元組與第二邏輯單元組。記憶體控制電路單元更用以將第一邏輯單元組的邏輯單元映射至此些裝置之中的第一裝置的實體抹除單元並且將第二邏輯單元組的邏輯單元映射至此些裝置之中的第二裝置的實體抹除單元,其中記憶體控制電路單元更用以從主機系統接收儲存至第一邏輯單元組中的至少一第一邏輯單元的第一資料,並且將第一資料寫入至映射至至少一第一邏輯單元的第一裝置的至少一第一實體抹除單元。以及,倘若此些裝置的運作狀態符合預定條件,記憶體控制電路單元更用以執行對應預定條件的重新映射操作。
在本發明的一範例實施例中,記憶體控制電路單元記錄每一裝置的磨損程度值。倘若經由第一裝置的磨損程度值減去第二裝置的磨損程度值所獲得的差值大於預定磨損門檻值時,記憶體控制電路單元判定此些裝置的運作狀態符合第一預定條件,並且執行對應第一預定條件的第一重新映射操作。所述第一重新映射操作包括將第一資料儲存至第二裝置的至少一第一實體抹除單元,並且將第一邏輯單元組的至少一第一邏輯單元重新映射至第 二裝置的至少一第一實體抹除單元。
在本發明的一範例實施例中,其中上述記憶體控制電路單元執行第一重新映射操作的運作是在第一裝置的至少一第一實體抹除單元已被寫滿且記憶體控制電路單元從主機系統接收到更新第一資料的寫入指令時被執行。
在本發明的一範例實施例中,倘若記憶體控制電路單元從主機系統接收到格式化指令或清除所有資料指令,記憶體控制電路單元判定此些裝置的運作狀態符合第二預定條件,並且執行對應第二預定條件的第二重新映射操作。所述第二重新映射操作包括記憶體控制電路單元將第一邏輯單元組的至少一第一邏輯單元重新映射至第二裝置的至少一第一實體抹除單元,將第一邏輯單元組的其他邏輯單元重新映射至第二裝置的其他實體抹除單元,並且將第二邏輯單元組的邏輯單元重新映射至第一裝置的實體抹除單元。
在本發明的一範例實施例中,在上述記憶體控制電路單元更用以執行第二重新映射操作的運作中,記憶體控制電路單元依據第二裝置的每一實體抹除單元的抹除次數選擇第二裝置的至少一第一實體抹除單元,其中第二裝置的至少一第一實體抹除單元的抹除次數小於第二裝置的其他實體抹除單元的抹除次數。
在本發明的一範例實施例中,在上述記憶體控制電路單元更用以記錄每一裝置的磨損程度值的運作中,記憶體控制電路單元記錄每一裝置的每一實體抹除單元的抹除次數,依據每一裝 置的每一實體抹除單元的抹除次數來計算每一裝置的平均抹除次數,並且將每一裝置的平均抹除次數做為每一裝置的磨損程度值。
基於上述,本發明之範例實施例所提供的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置可記錄可複寫式非揮發性記憶體的每一裝置的磨損程度值,並且當一裝置的磨損程度與另一裝置的磨損程度差異過大時,會將頻繁更新或存取的資料所對應的邏輯單元從磨損程度較大的裝置的實體抹除單元重新映射至磨損程度較低的裝置的實體抹除單元。另外,本發明之範例實施例所提供的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置還會在對儲存在每一裝置的全部資料進行抹除操作後或是對每一裝置進行格式化操作後,將原本映射至每一裝置的實體抹除單元的邏輯單元互相調換。如此一來,本發明之範例實施例所提供的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置可有效地平均可複寫式非揮發性記憶體中每一裝置的磨損程度,進而延長記憶體儲存裝置的壽命。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
11‧‧‧主機系統
12‧‧‧電腦
122‧‧‧微處理器
124‧‧‧隨機存取記憶體
13‧‧‧輸入/輸出裝置
126‧‧‧系統匯流排
128‧‧‧資料傳輸介面
21‧‧‧滑鼠
22‧‧‧鍵盤
23‧‧‧顯示器
24‧‧‧印表機
25‧‧‧隨身碟
26‧‧‧記憶卡
27‧‧‧固態硬碟
31‧‧‧數位相機
32‧‧‧SD卡
33‧‧‧MMC卡
34‧‧‧記憶棒
35‧‧‧CF卡
36‧‧‧嵌入式儲存裝置
10‧‧‧記憶體儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
410(0)~410(N)、411(0)~411(6)‧‧‧實體抹除單元
420(0)~420(N-1)‧‧‧裝置
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
602(0)‧‧‧資料區
604(0)‧‧‧閒置區
606(0)‧‧‧系統區
608(0)‧‧‧取代區
440(0)~440(N-1)‧‧‧邏輯單元組
430(0)~430(NF-1)‧‧‧邏輯單元
450(0)、450(1)‧‧‧邏輯-實體單元映射表
S1101、S1103、S1105、S1107、S1109、S1301、S1303、S1305、S1307、S1309‧‧‧記憶體管理方法的步驟
圖1是根據第一範例實施例所繪示的主機系統與記憶體儲存裝置的範例示意圖。
圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的範例示意圖。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的範例示意圖。
圖4是根據第一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
圖5是根據第一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。
圖6與圖7是根據第一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。
圖8是根據第一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的裝置的示意圖。
圖9與圖10是根據第一範例實施例所繪示之管理邏輯單元組與裝置之間的映射的示意圖。
圖11是根據第一範例實施例所繪示的記憶體管理方法的流程圖。
圖12是根據第二範例實施例所繪示之管理邏輯單元組與裝置之間的映射的示意圖。
圖13是根據第二範例實施例所繪示的記憶體管理方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路單元)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
[第一範例實施例]
圖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是根據第一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
請參照圖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)標準或其他適合的標準。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元404之晶片外。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404,並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)、複數階記憶胞(Triple Level Cell,TLC) NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。特別是,在本範例實施例中,可複寫式非揮發性記憶體模組406具有多個裝置(device)。例如,如圖4所繪示,可複寫式非揮發性記憶體模組406包括裝置420(0)~420(N-1)),其中此些裝置的數量可為2個或是多於2個。每個裝置具有多個實體抹除單元,例如,第一裝置420(0)具有多個實體抹除單元410(0)~410(N),第二裝置420(1)具有多個實體抹除單元411(0)~411(N),依此類推。應注意的是,本發明並不限定每個裝置的實體抹除單元的數量。
值得一提的是,在本範例實施例中,上述可複寫式非揮發性記憶體模組406的裝置是依據可複寫式非揮發性記憶體模組406的記憶體晶粒(die)中的記憶體平面(plane)所劃分的。具體來說,可複寫式非揮發性記憶體模組406可具有1個或多個記憶體晶粒,每一記憶體晶粒具有1個或多個記憶體平面,並且每一記憶體平面會有多個實體抹除單元。在出廠時,廠商會根據其需求將1個或多個記憶體平面劃分為1個裝置。藉此,廠商可依裝置為單位來管理整個可複寫式非揮發性記憶體模組406。本發明並不限定每一裝置所包含的記憶體平面的數量。
圖5是根據第一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電 路502、主機介面504、記憶體介面506、緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路502的操作時,等同於說明記憶體控制電路單元404的操作,以下並不再贅述。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行 資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是電性連接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組406中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。
主機介面504是電性連接至記憶體管理電路502並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面504來傳送至記憶體管理電路502。在本範例實施例中,主機介面504是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、 USB標準、UHS-I介面標準、UHS-II介面標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是電性連接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。具體來說,若記憶體管理電路502要存取可複寫式非揮發性記憶體模組406時,記憶體介面506會傳送對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
緩衝記憶體508是電性連接至記憶體管理電路502並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。記憶體控制電路單元404在緩衝記憶體508中規劃暫存來自於主機系統1000的資料或來自於可複寫式非揮發性記憶體模組406的資料,以使資料組織成預定單位大小或是成為傳輸單元大小,並寫入到可複寫式非揮發性記憶體模組406或是回傳到主機系統。此外,緩衝記憶體508還可暫存記憶體控制電路單元404所使用的系統管理資料,例如,檔案配置表或是邏輯-實體單元映射表等等。
電源管理電路510是電性連接至記憶體管理電路502並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路512是電性連接至記憶體管理電路 502並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路512會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC code)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤更正碼或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路512會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。
圖6是根據第一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的裝置的示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組406之運作時,“選擇”、“分組”、“劃分”、“關聯”等詞是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。以下配合圖6針對第一裝置420(0)來說明可複寫式非揮發性記憶體模組的裝置的管理架構,此管理架構亦適用於可複寫式非揮發性記憶體模組的其他裝置,不再贅述於此。
請參照圖6,可複寫式非揮發性記憶體模組406的第一裝 置420(0)具有多個實體抹除單元410(0)~410(N),每一實體抹除單元具有多個實體程式化單元。在本範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面或是實體扇(sector)。若實體程式化單元為實體頁面,則每一個實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體扇,用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤更正碼)。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊。
記憶體控制電路單元404(或記憶體管理電路502)會將第一裝置420(0)的實體抹除單元410(0)~410(N)邏輯地分組為資料區602(0)、閒置區604(0)、系統區606(0)與取代區608(0)。
邏輯上屬於資料區602(0)與閒置區604(0)的實體抹除單元是用以儲存來自於主機系統11的資料,並且在資料區602(0)與閒置區604(0)的實體抹除單元可被映射至主機系統11的多個邏輯單元。具體來說,資料區602(0)的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區604(0)的實體抹除單元是用以替換資料區602(0)的實體抹除單元。也就是說,假設記憶體控制電路單元404(或記憶體管理電路502)從主機系統11接收到寫入指令與對應此寫入指令的欲寫入之資料。所述寫入指令指示將欲寫入儲存至至少一第一邏輯單元。反應此寫入指令,記憶體控制電路 單元404(或記憶體管理電路502)會將此欲寫入資料儲存至映射至至少一第一邏輯單元的第一裝置的至少一第一實體抹除單元。或者,若資料區602(0)沒有任何已映射至至少一第一邏輯單元的實體抹除單元,記憶體控制電路單元404(或記憶體管理電路502)會從閒置區604(0)中選擇至少一實體抹除單元做為至少一第一實體抹除單元,再將資料寫入至所選擇的至少一第一實體抹除單元,以替換第一裝置420(0)的資料區602(0)的實體抹除單元。
邏輯上屬於系統區606(0)的實體抹除單元是用以記錄關於第一裝置420(0)的系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、第一裝置420(0)所屬的記憶體晶粒編號、第一裝置420(0)的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區608(0)中的實體抹除單元是用於壞實體抹除單元取代程序,以取代位於第一裝置420(0)的損壞的實體抹除單元。具體來說,倘若取代區608(0)中仍存有正常之實體抹除單元並且資料區602(0)的實體抹除單元損壞時,記憶體控制電路單元404(或記憶體管理電路502)會從取代區608(0)中選擇正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,第一裝置420(0)的資料區602(0)、閒置區604(0)、系統區606(0)與取代區608(0)之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置10的運作中,實體抹除單元關聯至資料區602(0)、閒 置區604(0)、系統區606(0)與取代區608(0)的分組關係會動態地變動。例如,當閒置區604(0)中的實體抹除單元損壞而被取代區608(0)的實體抹除單元取代時,則原本取代區608(0)的實體抹除單元會被關聯至閒置區604(0)。或是,從閒置區604(0)選擇實體抹除單元來儲存寫入資料之後,記憶體控制電路單元404(或記憶體管理電路502)會將此實體抹除單元關聯至資料區602(0)並且將對應所寫入的資料的邏輯單元映射至此實體抹除單元。
圖7是根據第一範例實施例所繪示之可複寫式非揮發性記憶體模組的邏輯單元組與裝置之間的映射關係的示意圖。
在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會依可複寫式非揮發性記憶體模組406中的裝置為單位來管理主機系統所存取的多個邏輯單元。具體來說,請參照圖7,假設主機系統所存取的連續邏輯單元為邏輯單元430(0)~430(Z-1),並且記憶體控制電路單元404(或記憶體管理電路502)會將此些邏輯單元依序分組成多個邏輯單元組。例如,如圖7所繪示,記憶體控制電路單元404(或記憶體管理電路502)會將邏輯單元430(0)~430(Z-1)分組為第一邏輯單元組440(0)、第二邏輯單元組440(1)等等...(N為等於2或是大於2的正整數)。在本範例實施例中,每個邏輯單元組中的邏輯單元的數量是根據每個邏輯單元組所對應的裝置的數量來決定的。換言之,記憶體控制電路單元404(或記憶體管理電路502)會根據可複寫式非揮發性記憶體模組406的裝置的數量對邏輯單元430(0)~430(Z-1)作分組。
舉例來說,假設可複寫式非揮發性記憶體模組406具有N個裝置(例如,如圖7所繪示的裝置420(0)~420(N-1)),記憶體控制電路單元404(或記憶體管理電路502)會將邏輯單元430(0)~430(Z-1)分為N個邏輯單元組(例如,如圖7所繪示的邏輯單元組440(0)~440(N-1))。此外,記憶體管理電路502會配置第一邏輯單元組440(0)的邏輯單元430(0)~430(F-1)以映射至第一裝置420(0)的實體抹除單元。依此類推,第二邏輯單元組440(1)的邏輯單元430(F)~430(G-1)被映射至第二裝置420(1)的實體抹除單元;第N邏輯單元組440(N-1)的邏輯單元430(Y)~430(Z-1)被映射至第N裝置420(N-1)的實體抹除單元。值得一提的是,在圖7的例子中,每個邏輯單元組中的邏輯單元映射至相同的裝置的實體抹除單元,但本發明不限於此。例如,在其他範例實施例中,每個邏輯單元組中的邏輯單元亦可映射至不同的裝置的實體抹除單元。
圖8是根據第一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的裝置的示意圖。以下配合圖6、圖8以及第一邏輯單元組440(0)與第一裝置420(0)間的映射關係來說明可複寫式非揮發性記憶體模組的裝置的管理架構,此管理架構亦適用於可複寫式非揮發性記憶體模組的其他裝置,不再贅述於此。
請參照圖8,假設記憶體控制電路單元404(或記憶體管理電路502)已配置第一邏輯單元組440(0)的邏輯單元430(0)~430(F-1)來映射第一裝置420(0)的資料區602(0)的實體抹除單元410(0)~410(F-1),由此主機系統11是透過邏輯單元 430(0)~430(F-1)來存取資料區602(0)中的資料。在此,每一個邏輯單元430(0)~430(F-1)可以是由一或多個邏輯位址組成,一個邏輯單元可以是映射至一或多個實體單元,並且一個實體單元可以是一或多個實體位址、一或多個實體扇、一或多個實體程式化單元或者一或多個實體抹除單元。在本範例實施例中,對應每一裝置,記憶體控制電路單元404(或記憶體管理電路502)會建立邏輯-實體映射表(logical-physical mapping table),以記錄邏輯單元與每一裝置的實體抹除單元之間的映射關係。換言之,記憶體控制電路單元404(或記憶體管理電路502)會對應每個裝置來使用對應每一裝置的邏輯-實體映射表以管理每一裝置的實體抹除單元與映射至此些實體抹除單元的邏輯單元的映射關係。舉例來說,記憶體控制電路單元404(或記憶體管理電路502)會建立第一邏輯-實體映射表來管理第一裝置420(0)的實體抹除單元與其所映射的邏輯單元的映射關係。
在本範例實施例中,當主機系統11欲寫入一筆資料至邏輯單元430(0)~430(F-1)的一個邏輯單元或更新儲存於邏輯單元430(0)~430(F-1)的一個邏輯單元中的資料時,記憶體控制電路單元404(或記憶體管理電路502)會將此資料寫入已映射至此邏輯單元的實體抹除單元,或是記憶體控制電路單元404(或記憶體管理電路502)會從第一裝置420(0)的閒置區604(0)中選擇一個實體抹除單元並且將此資料寫入至此實體抹除單元。特別是,記憶體控制電路單元404(或記憶體管理電路502)會將第一邏輯-實體映射表 從可複寫式非揮發性記憶體模組406載入至緩衝記憶體508,並將此邏輯單元與用以儲存屬於此邏輯單元的資料的實體抹除單元之間的映射關係更新至第一邏輯-實體映射表中。爾後,記憶體控制電路單元404(或記憶體管理電路502)即可根據第一邏輯-實體映射表來找到對應的實體抹除單元並且可從此實體抹除單元中讀取資料。
例如,在欲寫入第一資料至第一邏輯單元組440(0)的邏輯單元430(0)~430(F-1)中的一個邏輯單元(亦稱第一邏輯單元)的例子中,倘若第一邏輯單元是映射至第一裝置420(0)的資料區602(0)中的一個實體抹除單元(亦稱第一實體抹除單元)時,記憶體控制電路單元404(或記憶體管理電路502)會根據記錄此映射關係的第一邏輯-實體映射表選擇第一實體抹除單元來儲存第一資料。
此外,在另一範例中,倘若第一邏輯單元尚未映射至任何實體抹除單元時,記憶體控制電路單元404(或記憶體管理電路502)可從第一裝置420(0)的閒置區604(0)中選擇一個實體抹除單元(亦稱第一實體抹除單元)來儲存第一資料。並且,在寫入第一資料至第一實體抹除單元後,記憶體控制電路單元404(或記憶體管理電路502)會將第一實體抹除單元關聯至第一裝置420(0)的資料區602(0),將第一邏輯單元映射至第一實體抹除單元,並且對應更新第一實體抹除單元所屬的第一裝置420(0)的第一邏輯-實體映射表。
在本範例實施例中,當記憶體控制電路單元404(或記憶 體管理電路502)欲將資料寫入至一個實體抹除單元時,記憶體控制電路單元404(或記憶體管理電路502)會判斷此實體抹除單元是否已經或即將被寫滿。若此實體抹除單元已經或即將被寫滿,記憶體控制電路單元404(或記憶體管理電路502)會從閒置區604(0)中選擇另一個實體抹除單元做為目前使用之實體抹除單元,以繼續寫入資料至此目前使用之實體抹除單元。此外,記憶體控制電路單元404(或記憶體管理電路502)可對資料區602(0)中的一或多個儲存有有效資料的實體抹除單元執行資料合併(merging)程序或垃圾回收(garbage collection)程序,以釋放出一或多個實體抹除單元並將其關聯至閒置區604(0)。例如,記憶體控制電路單元404(或記憶體管理電路502)會將屬於一個邏輯單元的資料寫入至從閒置區604(0)選擇的一個實體抹除單元並且將資料區602(0)中原先映射至此邏輯單元的一個實體抹除單元的部分資料標示為無效資料。然後,記憶體控制電路單元404(或記憶體管理電路502)可將此原先映射至此邏輯單元的實體抹除單元中剩餘的有效資料複製到此從閒置區604(0)所選擇的實體抹除單元並且將此原先映射至此邏輯單元的一個實體抹除單元關聯至閒置區604(0)。藉此,完成一次的資料合併程序。在垃圾回收程序中,資料區602(0)中的一或多個實體程式化單元所儲存的有效資料會被複製到從閒置區604(0)中選擇的一或多個實體抹除單元並且所儲存的有效資料皆已被複製的實體抹除單元會被關聯至閒置區604(0)。被關聯至閒置區604(0)的實體抹除單元可在被抹除後再關聯至閒置區604(0) 或關聯至閒置區604(0)後再抹除,在此不限制抹除的時間點。
圖9與圖10是根據本發明的第一範例實施例所繪示之管理邏輯單元組與裝置之間的映射的示意圖。
為了便於說明,以下將簡化主機系統可存取的邏輯單元與可複寫式非揮發性記憶體模組406的架構。在本範例實施例中,請參照圖9,假設主機系統11可存取10個邏輯單元430(0)~430(9),並且可複寫式非揮發性記憶體模組406具有2個裝置420(0)~420(1),其中第一裝置420(0)具有7個實體抹除單元410(0)~410(6),且第二裝置420(1)具有7個實體抹除單元411(0)~411(6)。邏輯單元430(0)~430(9)根據裝置的數目被劃分為2個邏輯單元組,其中第一邏輯單元組440(0)包含邏輯單元430(0)~430(4),並且第二邏輯單元組440(1)包含邏輯單元430(5)~430(9)。第一邏輯單元組440(0)的邏輯單元430(0)~430(4)被映射至第一裝置420(0)的實體抹除單元410(0)~410(4),其中實體抹除單元410(0)~410(4)被關聯至第一裝置420(0)的資料區602(0)。第二邏輯單元組440(1)的邏輯單元430(5)~430(9)被映射至第二裝置420(1)的實體抹除單元411(0)~411(4),其中實體抹除單元411(0)~411(4)被關聯至第二裝置420(1)的資料區602(1)。此外,第一裝置420(0)的實體抹除單元410(5)~410(6)被關聯至第一裝置420(0)的閒置區604(0),並且第二裝置420(1)的實體抹除單元411(5)~411(6)被關聯至第二裝置420(1)的閒置區604(1)。
在本範例實施例中,記憶體控制電路單元404(或記憶體 管理電路502)會根據邏輯單元與每一裝置的實體抹除單元間的映射關係。例如,記憶體控制電路單元404(或記憶體管理電路502)會建立第一邏輯-實體映射表450(0)來記錄並管理對應第一裝置420(0)的實體抹除單元410(0)~410(6)的映射關係。如圖9所繪示,邏輯單元430(0)是映射至實體抹除單元420(0),因此,記憶體控制電路單元404(或記憶體管理電路502)在第一邏輯-實體映射表450(0)記錄“430(0)→410(0)”以表示邏輯單元430(0)映射至實體抹除單元410(0)。依此類推,記憶體控制電路單元404(或記憶體管理電路502)也建立第二邏輯-實體映射表450(1)來管理第二裝置420(1)的實體抹除單元411(0)~411(6)與其所映射的邏輯單元間的映射關係。值得一提的是,於圖9中的邏輯單元、邏輯-實體映射表與可複寫式非揮發性記憶體模組406的裝置的架構亦相似於圖10與圖13,以下不再贅述。
在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會以裝置為單位,計算每一裝置的磨損程度值。具體來說,記憶體控制電路單元404(或記憶體管理電路502)會記錄每一裝置的每個實體抹除單元的抹除次數,根據每一裝置的每個實體抹除單元的抹除次數來計算每一裝置的平均抹除次數,並且以每一裝置的平均抹除次數來做為每一裝置的磨損程度值。例如,如圖9所繪示,第一裝置420(0)的實體抹除單元410(0)~410(6)的抹除次數各為1x次,並且第二裝置420(1)的實體抹除單元411(0)~411(6)的抹除次數皆為0次。基此,記憶體控制電路單元 404(或記憶體管理電路502)會獲得第一裝置420(0)的平均抹除次數為1x次,且第二裝置420(1)的平均抹除次數為0次。此外,記憶體控制電路單元404(或記憶體管理電路502)會將每一裝置的平均抹除次數做為對應每一裝置的磨損程度值。依照上述的例子,記憶體控制電路單元404(或記憶體管理電路502)會辨識第一裝置420(0)的磨損程度值為1x,且第二裝置420(1)的磨損程度值為0。
在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)還會以裝置為單位,對每一裝置中的實體抹除單元執行磨損平衡(wear-leveling)操作。舉例來說,若主機系統指示將大小等於1個邏輯單元之容量的第一資料寫入至第一邏輯單元組440(0)中的第一邏輯單元430(0),且主機系統對第一資料更新了7x次,則對應更新7x次的第一資料,第一邏輯單元430(0)會被更新(寫入)7x次。由於磨損平衡操作是以裝置為單位,針對同一裝置內的實體抹除單元來執行。因此,經過對第一裝置420(0)的磨損平衡操作之後,在對應第一邏輯單元430(0)的寫入次數7x且其他邏輯單元430(1)~430(9)皆未被寫入的情況下,第一裝置420(0)的實體抹除單元410(0)~410(6)會各被抹除1x次。也就是說,經由對第一裝置420(0)的磨損平衡操作,記憶體管理電路502會將對於1個實體抹除單元來說是7x次的抹除次數平均分配至第一裝置420(0)中的7個實體抹除單元,以使每個實體抹除單元僅需被抹除1x次。此外,對於第一裝置420(0)的實體抹除單元410(0)~410(6)的磨損平衡操作亦不會影響第二裝置420(1)的實體抹除單元 411(0)~411(6)。第二裝置420(1)的實體抹除單元411(0)~411(6)的抹除次數依然保持0次。因此,第一裝置420(0)的磨損程度值會因為映射至第一裝置420(0)的實體抹除單元的第一邏輯單元430(0)的頻繁更新而高於第二裝置420(1)的磨損程度值。
特別是,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會藉由執行重新映射操作來避免可複寫式非揮發性記憶體模組406中的每一裝置的磨損程度差異過大的現象。具體來說,如上所述,記憶體控制電路單元404(或記憶體管理電路502)會記錄每一裝置的磨損程度值,判斷此些裝置的運作狀態是否符合某個預定條件,進而執行對應判斷結果的重新映射操作。
舉例來說,記憶體控制電路單元404(或記憶體管理電路502)會判斷每一裝置間的磨損程度值的差值是否大於預定磨損門檻值。倘若每一裝置間的磨損程度值的差值大於預定磨損門檻值,記憶體控制電路單元404(或記憶體管理電路502)會判定此些裝置的運作狀態符合一個預定條件(亦稱第一預定條件),並且對應此些裝置的運作狀態符合第一預定條件的判斷結果來執行重新映射操作(亦稱第一重新映射操作)。一般來說,經常儲存頻繁更新的資料(亦稱第一資料)的裝置的磨損程度值會較高。倘若經由一裝置(亦稱第一裝置)的磨損程度值減去另一裝置(亦稱第二裝置)的磨損程度值所獲得的差值大於預定磨損門檻值時,記憶體控制電路單元404(或記憶體管理電路502)會執行第一重新映射操作,以將 第一資料儲存至第二裝置的至少一實體抹除單元(亦稱第一實體抹除單元),並且將第一資料所屬的第一邏輯單元組的至少一邏輯單元(亦稱第一邏輯單元)重新映射至第二裝置的至少一第一實體抹除單元。
舉例來說,請參照圖9,假設預設磨損門檻值為“1x-1”,由於第一裝置420(0)的磨損程度值(即,“1x”)減去第二裝置420(1)的磨損程度值(即,“0”)的差值(即,“1x”)大於預設磨損門檻值(即,“1x-1”),因此,記憶體控制電路單元404(或記憶體管理電路502)會執行第一重新映射操作。請參照圖10,在第一重新映射操作中,記憶體管理電路502會從第二裝置420(1)的閒置區604(1)中選擇一個實體抹除單元411(5)(亦稱第一實體抹除單元),將第一資料儲存至所選擇的第二裝置420(1)的第一實體抹除單元411(5),並且將主機系統指示用以儲存第一資料的第一邏輯單元430(0)重新映射至第二裝置420(1)的第一實體抹除單元411(5),其中第一實體抹除單元411(5)也會被關聯至第二裝置420(1)的資料區602(1)。此外,如圖10所繪示,第一邏輯-實體單元映射表450(0)與第二邏輯-實體映射表也會在執行完第一重新映射操作之後,一併被更新。例如,如圖10所繪示,第二邏輯-實體映射表450(1)會記錄“430(0)→411(5)”。應提醒的是,上述在第一邏輯-實體映射表450(0)與第二邏輯-實體映射表450(1)所記錄的映射關係的格式僅為說明本發明之用,本發明不限定於此。
應注意的是,在本範例實施例中,倘若每一裝置間的磨 損程度值的差值大於預定磨損門檻值,記憶體控制電路單元404(或記憶體管理電路502)會判定此些裝置的運作狀態符合第一預定條件,並且對應此些裝置的運作狀態符合第一預定條件的判斷結果來執行第一重新映射操作,但本發明不限於此。廠商可自行設定其他適合的判斷方式來判斷此些裝置的運作狀態是否符合第一預定條件。例如,在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會判斷每一裝置間的磨損程度值是否大於預定磨損門檻值。倘若此些裝置中的一裝置(亦稱,第一裝置)的磨損程度值大於預定磨損門檻值,記憶體控制電路單元404(或記憶體管理電路502)會判定此些裝置的運作狀態符合第一預定條件,並且對應此些裝置的運作狀態符合第一預定條件的判斷結果來執行第一重新映射操作。特別是,在此另一範例實施例中,預定磨損門檻值會隨著此些裝置整體的磨損程度的增加來對應提高。
舉例來說,假設一開始所有裝置的磨損程度值為“0”,並且預定磨損門檻值被設定為“1000”。當第一裝置的磨損程度值到達“1001”(大於預定磨損門檻值)時,記憶體控制電路單元404(或記憶體管理電路502)會執行第一重新映射操作。第一重新操作的運作相似於上述的例子,不贅述於此。應注意的是,在一實施例中,記憶體控制電路單元404(或記憶體管理電路502)還會選擇磨損程度值較第一裝置的磨損程度值小的裝置來作為第二裝置,以執行第一重新映射操作。此外,當記憶體控制電路單元 404(或記憶體管理電路502)判定每一裝置的磨損程度值都大於預定磨損門檻值時,記憶體控制電路單元404(或記憶體管理電路502)會調高預定磨損門檻值。例如,當每一裝置的磨損程度值都大於預定磨損門檻值時,記憶體控制電路單元404(或記憶體管理電路502)還會將預定磨損門檻值從原本的“1000”調整為“2000”。也就是說,記憶體控制電路單元404(或記憶體管理電路502)亦會根據記憶體儲存裝置的整體磨損程度來動態調整預定磨損門檻,以持續對每一裝置執行重新映射操作,進而平均每一裝置的磨損程度。
值得一提的是,在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)更會從第二裝置420(1)的閒置區604(1)的所有實體抹除單元411(5)~411(6)中,根據此些實體抹除單元的抹除次數,從閒置區604(1)的實體抹除單元411(5)~411(6)中選擇一個抹除次數最低的實體抹除單元來做為第一實體抹除單元以儲存第一資料。也就是說,記憶體控制電路單元404(或記憶體管理電路502)會從閒置區中選擇最年輕的實體抹除區塊(例如,抹除次數最少的實體抹除單元)來使用。
此外,在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)執行第一重新映射操作的運作會在第一裝置的第一實體抹除單元已被寫滿且從主機系統接收到更新第一資料的寫入指令時被執行。也就是說,當記憶體管理電路502判定第一裝置420(0)的磨損程度值減去第二裝置420(1)的磨損程度值的 差值大於預設磨損門檻值時,記憶體控制電路單元404(或記憶體管理電路502)不會馬上執行第一重新映射操作,而是會在原來儲存第一資料的第一實體抹除單元已被寫滿且被更新的第一資料欲寫入至另一空白的實體抹除單元之前來執行第一重新映射操作,以將已更新的第一資料寫入至第二裝置的第一實體抹除單元且重新映射第一邏輯單元至第二裝置的第一實體抹除單元。
在本範例實施例中,上述被頻繁更新的資料(亦稱第一資料),其更新頻率會大於儲存在沒有儲存第一資料的其他實體抹除單元的資料(亦稱第二資料)的更新頻率。第一資料例如是檔案系統資料,第二資料例如是更新頻率較第一資料低的使用者資料。檔案系統資料例如是檔案配置表(File Allocation Table,FAT)、增強型文件系統(New Technology File System,NTFS)、延伸檔案配置表(Extended File Allocation Table,exFAT)、檔案系統表(File System Table)、目錄(Directory)、主開機紀錄(Master Boot Record,MBR)、GUID磁碟分割表(GUID Partition Table,GPT)等其他會被頻繁更新的檔案系統資料,但本發明不限於此。
例如,在另一實施例中,記憶體控制電路單元404(或記憶體管理電路502)還可根據邏輯單元的忙碌程度來判斷此邏輯資料與對應此邏輯單元的資料的性質。例如,在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)還可記錄每一邏輯單元被更新的次數,將最頻繁更新的邏輯單元所儲存的資料視為第一資料,並且將儲存此第一資料的邏輯單元視為第一邏輯單 元。接著,在執行重新映射操作的運作中,記憶體控制電路單元404(或記憶體管理電路502)對此第一資料以及此第一邏輯單元進行重新映射。應注意的是,在一些情況下,記憶體控制電路單元404(或記憶體管理電路502)會儲存更新頻率高的使用者資料或是其他型態的資料,而此些更新頻率高的資料亦可視為第一資料。
值得一提的是,在上述的例子中,在記憶體控制電路單元404(或記憶體管理電路502)執行完第一重新映射操作之後,假設用以儲存第一資料的第一邏輯單元430(0)再被更新(寫入)7y次(第一邏輯單元430(0)的寫入次數為7x+7y次)時,如上述,由於第一邏輯單元已被重新映射至第二裝置420(1)的第一實體抹除單元411(5),經過對於第二裝置420(1)的磨損平衡操作之後,原本第二裝置420(1)的每一實體抹除單元的抹除次數會從0次成為1y次。也就是說,藉由執行第一重新映射操作,記憶體管理電路502會使用磨損程度值較低的裝置來儲存(頻繁更新的)第一資料,進而使可複寫式非揮發性記憶體模組406的每一裝置之間磨損程度的差異降低,達到均衡損耗的效果。
圖11是根據本發明的第一範例實施例所繪示的記憶體管理方法的流程圖。
在步驟S1101中,記憶體控制電路單元404(或記憶體管理電路502)會配置多個邏輯單元,其中此些邏輯單元包括第一邏輯單元組與第二邏輯單元組。
在步驟S1103中,記憶體控制電路單元404(或記憶體管 理電路502)將第一邏輯單元組的邏輯單元映射至可複寫式非揮發性記憶體模組的多個裝置之中的第一裝置的實體抹除單元並且將第二邏輯單元組的邏輯單元映射至此些裝置之中的第二裝置的實體抹除單元,其中主機系統指示將第一資料儲存至第一邏輯單元組中的至少一第一邏輯單元,並且第一資料被寫入至映射至至少一第一邏輯單元的第一裝置的至少一第一實體抹除單元。
在步驟S1105中,記憶體控制電路單元404(或記憶體管理電路502)會記錄每一裝置的磨損程度值。
在步驟S1107中,記憶體控制電路單元404(或記憶體管理電路502)會判斷經由第一裝置的磨損程度值減去第二裝置的磨損程度值所獲得的差值是否大於預定磨損門檻值。
倘若經由第一裝置的磨損程度值減去第二裝置的磨損程度值所獲得的差值非大於預定磨損門檻值時,圖11的流程會被結束。
倘若記憶體管理電路502判定經由第一裝置的磨損程度值減去第二裝置的磨損程度值所獲得的差值大於預定磨損門檻值時,在步驟S1309中,記憶體控制電路單元404(或記憶體管理電路502)將第一資料儲存至第二裝置的至少一第一實體抹除單元,並且將第一邏輯單元組的至少一第一邏輯單元重新映射至第二裝置的至少一第一實體抹除單元。接著,圖11的流程會被結束。
[第二範例實施例]
第二範例實施例在硬體架構上相似於第一範例實施例, 而第二範例實施例與第一範例實施例不同的地方在於,第一範例實施例是在第一裝置與第二裝置間的磨損程度差異過大時,將原來儲存在第一裝置的第一資料儲存至第二裝置並且將第一邏輯單元重新映射至第二裝置。而第二範例實施例是當完成對於可複寫式非揮發性記憶體的格式化操作或清除所有資料操作後,將映射至每一裝置的邏輯單元組互相調換,以使每一邏輯單元組所映射的裝置會與原本的不同。換言之,在第二範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會判定此些裝置的運作狀態符合另一個預定條件(亦稱第二預定條件)後,執行另一種重新映射操作(亦稱第二重新映射操作)。以下將利用第一範例實施例的元件編號配合圖9與圖12詳細說明此第二範例實施例的另一種重新映射操作的方法與執行此另一種重新映射操作的時機。
圖12是根據本發明的第二範例實施例所繪示之管理邏輯單元組與裝置之間的映射的示意圖。
在第二範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會判斷是否從主機系統11接收到格式化指令或清除所有資料指令,並且對可複寫式非揮發性記憶體模組406的所有裝置(例如,圖12中的第一裝置420(0)與第二裝置420(1))的實體抹除單元執行抹除操作。倘若所有裝置的實體抹除單元因為來自主機系統11的格式化指令或清除所有資料指令,記憶體控制電路單元404(或記憶體管理電路502)會判定此些裝置的運作狀態符合第二預定條件,並且對應此些裝置的運作狀態符合第二預定條 件的判斷結果來執行第二重新映射操作。換言之,記憶體管理電路502會在從主機系統11接收到格式化指令或清除所有資料指令後,執行第二重新映射操作。應注意的是,在另一實施例中,記憶體管理電路502會在從主機系統11接收到格式化指令或清除所有資料指令並且對可複寫式非揮發性記憶體模組406的所有裝置(例如,圖12中的第一裝置420(0)與第二裝置420(1))的實體抹除單元執行抹除操作之後才執行第二重新映射操作。
具體來說,請參照圖9,假設記憶體控制電路單元404(或記憶體管理電路502)從主機系統11接收到格式化指令或清除所有資料指令,記憶體控制電路單元404(或記憶體管理電路502)會判定此些裝置的運作狀態符合第二預定條件並且執行第二重新映射操作。其中,在第二重新映射操作的運作中,記憶體控制電路單元404(或記憶體管理電路502)除了將第一邏輯單元組440(0)的第一邏輯單元430(0)重新映射至第二裝置420(1)的第一實體抹除單元411(1)之外,請參照圖12,記憶體控制電路單元404(或記憶體管理電路502)還會將第一邏輯單元組的其他邏輯單元430(1)~430(4)重新映射至第二裝置420(1)的其他實體抹除單元411(0)、411(2)~411(4)。也就是說,記憶體控制電路單元404(或記憶體管理電路502)會將第一邏輯單元組440(0)的所有邏輯單元430(0)~430(4)重新映射至第二裝置420(1)的實體抹除單元411(0)~411(4)。相對地,記憶體控制電路單元404(或記憶體管理電路502)會將第二邏輯單元組440(1)的所有邏輯單元 430(5)~430(9)重新映射至第一裝置420(0)的實體抹除單元410(0)~410(4)。換言之,在第二範例實施例中,在接收到格式化指令或清除所有資料的指令下,記憶體控制電路單元404(或記憶體管理電路502)會執行第二重新映射操作,以將每一邏輯單元組的邏輯單元原本所映射的裝置的實體抹除單元換為其他裝置的實體抹除單元。應注意的是,所述第二重新映射操作可以在完成對應格式化指令或清除所有資料的指令的抹除操作之前或是完成對應格式化指令或清除所有資料的指令的抹除操作之後被執行。
同樣地,在第二重新映射操作執行完後,記憶體控制電路單元404(或記憶體管理電路502)亦會對應更新第一邏輯-實體單元映射表與第二邏輯-實體單元映射表。應注意的是,相似於上述對於圖10的說明,在圖12中,由於第一邏輯單元430(0)已被重新映射至第二裝置420(1)的第一實體抹除單元411(1),因此經過對於第二裝置420(1)的磨損平衡操作之後,原本第二裝置420(1)的每一實體抹除單元的抹除次數會從0次成為1y次。也就是說,在經過第二範例實施例所提供的重新映射操作之後,每一裝置間的磨損程度的差異也會因此而減小。
值得一提的是,在第二範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會根據每一裝置的磨損程度值來選擇磨損程度值最小的裝置以進行第二重新映射操作。舉例來說,請參照圖9,第一裝置420(0)的磨損程度值為1x,第二裝置420(1)的磨損程度值為0,第二裝置420(1)的磨損程度值是可複寫 式非揮發性記憶體模組406的所有裝置(第一裝置420(0)與第二裝置420(1))的磨損程度值中最小的。當記憶體管理電路502執行第二重新映射操作時,記憶體管理電路502會選擇第二裝置420(1)來進行第二重新映射操作。也就是說,在此情況下,如圖12所繪示,記憶體控制電路單元404(或記憶體管理電路502)會將第一邏輯單元組440(0)的邏輯單元430(0)~430(4)映射至第二裝置420(1)的實體抹除單元411(0)~411(4),並將第二邏輯單元組440(1)的邏輯單元430(5)~430(9)映射至第一裝置420(0)的實體抹除單元410(0)~410(4)。必須了解的是,圖9是以可複寫式非揮發性記憶體模組406具有兩個裝置來說明,因此,在執行第二重新映射操作時,第一裝置與第二裝置的映射會彼此交換,然而,本發明不限於此。例如,在可複寫式非揮發性記憶體模組406具有三個裝置的例子中,根據每一裝置的磨損程度值,記憶體控制電路單元404(或記憶體管理電路502)可能會選擇第一與第二裝置來進行上述第二重新映射操作;或者選擇第一與第三裝置來進行上述第二重新映射操作;或者選擇第二與第三裝置來進行上述第二重新映射操作。
圖13是根據本發明的第二範例實施例所繪示的記憶體管理方法的流程圖。
在步驟S1301中,記憶體控制電路單元404(或記憶體管理電路502)會配置多個邏輯單元,其中此些邏輯單元包括第一邏輯單元組與第二邏輯單元組。
在步驟S1303中,記憶體控制電路單元404(或記憶體管理電路502)將第一邏輯單元組的邏輯單元映射至此些裝置之中的第一裝置的實體抹除單元並且將第二邏輯單元組的邏輯單元映射至此些裝置之中的第二裝置的實體抹除單元,其中主機系統指示將第一資料儲存至第一邏輯單元組中的至少一第一邏輯單元,並且第一資料被寫入至映射至至少一第一邏輯單元的第一裝置的至少一第一實體抹除單元。
在步驟S1305中,記憶體控制電路單元404(或記憶體管理電路502)從主機系統接收到格式化指令或清除所有資料指令。
在步驟S1307中,記憶體控制電路單元404(或記憶體管理電路502)對可複寫式非揮發性記憶體模組的裝置的實體抹除單元執行抹除操作。
在步驟S1309中,記憶體控制電路單元404(或記憶體管理電路502)將第一邏輯單元組的邏輯單元重新映射至第二裝置的實體抹除單元,以及將第二邏輯單元組的邏輯單元重新映射至第一裝置的實體抹除單元。之後,圖13的流程會被結束。
值得一提的是,如上所述,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)還可記錄每一裝置的磨損程度值。藉此,在步驟S1309中,記憶體管理電路502可選擇此些裝置中磨損程度值最小的第二裝置的實體抹除單元來被第一邏輯單元組的邏輯單元重新映射,並且將原本映射至第二裝置的實體抹除單元的第二邏輯單元組的邏輯單元重新映射至第一裝置 的實體抹除單元。
值得一提的是,在本發明的範例實施例中,儲存第一資料的第一實體抹除單元的數目為1個,但本發明不限於此。例如,在其他範例實施例中,儲存第一資料的第一實體抹除單元的數目為2個或是2個以上。同樣地,主機系統11指示儲存第一資料的第一邏輯單元的數目也可以是1個或是多於1個的數目。
此外,在上述的範例實施例中,記憶體管理電路502會根據每一裝置的平均抹除次數來做為每一裝置的磨損程度值,但本發明不限於此。例如,在另一範例實施例中,記憶體管理電路502可根據每一裝置的平均寫入次數,或是每一裝置的平均抹除次數的倍數與每一裝置的平均寫入次數的另一倍數的總和來做為每一裝置的磨損程度值。此外,在另一範例實施例中,記憶體管理電路502亦可根據每一裝置的平均錯誤位元數目或其他與裝置的磨損程度有關的資訊或其組合來計算每一裝置的磨損程度值。
綜上所述,本範例實施例所提供的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置會記錄可複寫式非揮發性記憶體的每一裝置的磨損程度值,並且當一裝置的磨損程度與另一裝置的磨損程度差異過大時,執行重新映射操作,以將頻繁更新或存取的資料所對應的邏輯單元從磨損程度較大的裝置的實體抹除單元重新映射至磨損程度較低的裝置的實體抹除單元。另外,本發明之範例實施例所提供的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置還會在對儲存在每一裝置的全部資料進行 抹除操作後或是對每一裝置進行格式化操作後,將原本映射至每一裝置的實體抹除單元的邏輯單元互相調換。如此一來,本範例實施例所提供的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置可有效地平均可複寫式非揮發性記憶體中每一裝置的磨損程度,進而延長記憶體儲存裝置的壽命。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S1101、S1103、S1105、S1107、S1109‧‧‧記憶體管理方法的步驟

Claims (21)

  1. 一種記憶體管理方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個裝置,並且每一該些裝置具有多個實體抹除單元,該記憶體管理方法包括:配置多個邏輯單元,其中該些邏輯單元至少被分為一第一邏輯單元組與一第二邏輯單元組;將該第一邏輯單元組的邏輯單元映射至該些裝置之中的一第一裝置的實體抹除單元並且將該第二邏輯單元組的邏輯單元映射至該些裝置之中的一第二裝置的實體抹除單元;從一主機系統接收儲存至該第一邏輯單元組中的至少一第一邏輯單元的一第一資料,並且將該第一資料寫入至映射至該至少一第一邏輯單元的該第一裝置的至少一第一實體抹除單元;倘若該些裝置的一運作狀態符合一預定條件,執行對應該預定條件的一重新映射操作;以及倘若該些裝置的該運作狀態不符合該預定條件時,不執行該重新映射操作。
  2. 如申請專利範圍第1項所述的記憶體管理方法,其中上述倘若該些裝置的該運作狀態符合該預定條件,執行對應該預定條件的該重新映射操作的步驟包括:記錄每一該些裝置的一磨損程度值;以及倘若該第一裝置的該磨損程度值大於一預定磨損門檻值時,判定該些裝置的該運作狀態符合一第一預定條件,並且執行對應 該第一預定條件的一第一重新映射操作,其中該第一重新映射操作包括將該第一資料儲存至該第二裝置的該至少一第一實體抹除單元,並且將該第一邏輯單元組的該至少一第一邏輯單元重新映射至該第二裝置的該至少一第一實體抹除單元。
  3. 如申請專利範圍第2項所述的記憶體管理方法,其中上述執行該第一重新映射操作的步驟是在該第一裝置的該至少一第一實體抹除單元已被寫滿且從該主機系統接收到更新該第一資料的一寫入指令時被執行。
  4. 如申請專利範圍第1項所述的記憶體管理方法,其中上述倘若該些裝置的該運作狀態符合該預定條件,執行對應該預定條件的該重新映射操作的步驟包括:倘若從該主機系統接收到一格式化指令或一清除所有資料指令,判定該些裝置的該運作狀態符合一第二預定條件,並且執行對應該第二預定條件的一第二重新映射操作,其中該第二重新映射操作包括將該第一邏輯單元組的該至少一第一邏輯單元重新映射至該第二裝置的該至少一第一實體抹除單元,將該第一邏輯單元組的其他邏輯單元重新映射至該第二裝置的其他實體抹除單元,並且將該第二邏輯單元組的邏輯單元重新映射至該第一裝置的實體抹除單元。
  5. 如申請專利範圍第4項所述的記憶體管理方法,更包括:記錄每一該些裝置的一磨損程度值,其中該第二裝置的該磨 損程度值小於該些裝置之中其他裝置的磨損程度值。
  6. 如申請專利範圍第4項所述的記憶體管理方法,其中該重新映射操作更包括依據該第二裝置的每一該些實體抹除單元的抹除次數選擇該第二裝置的該至少一第一實體抹除單元,其中該第二裝置的該至少一第一實體抹除單元的抹除次數小於該第二裝置的其他實體抹除單元的抹除次數。
  7. 如申請專利範圍第1項所述的記憶體管理方法,其中該第一資料的一更新頻率大於一第二資料的該更新頻率,其中該第二資料是被儲存在該些實體抹除單元中非儲存該第一資料的其他實體抹除單元的資料。
  8. 一種記憶體控制電路單元,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個裝置,並且每一該些裝置具有多個實體抹除單元,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且用以配置多個邏輯單元,其中該些邏輯單元包括一第一邏輯單元組與一第二邏輯單元組,其中該記憶體管理電路更用以將該第一邏輯單元組的邏輯單元映射至該些裝置之中的一第一裝置的實體抹除單元並且將該第二邏輯單元組的邏輯單元映射至該些裝置之中的一第二裝置的實 體抹除單元,其中該記憶體管理電路更用以從一主機系統接收儲存至該第一邏輯單元組中的至少一第一邏輯單元的一第一資料,並且將該第一資料寫入至映射至該至少一第一邏輯單元的該第一裝置的至少一第一實體抹除單元,其中倘若該些裝置的一運作狀態符合一預定條件,該記憶體管理電路更用以執行對應該預定條件的一重新映射操作,並且倘若該些裝置的該運作狀態不符合該預定條件時,該記憶體管理電路不執行該重新映射操作。
  9. 如申請專利範圍第8項所述的記憶體控制電路單元,其中在上述倘若該些裝置的該運作狀態符合該預定條件,該記憶體管理電路更用以執行對應該預定條件的該重新映射操作的運作中,該記憶體管理電路記錄每一該些裝置的一磨損程度值,其中倘若經由該第一裝置的該磨損程度值減去該第二裝置的該磨損程度值所獲得的一差值大於一預定磨損門檻值時,該記憶體管理電路判定該些裝置的該運作狀態符合一第一預定條件,並且執行對應該第一預定條件的一第一重新映射操作,其中該第一重新映射操作包括將該第一資料儲存至該第二裝置的該至少一第一實體抹除單元,並且將該第一邏輯單元組的該至少一第一邏輯單元重新映射至該第二裝置的該至少一第一實體抹除單元。
  10. 如申請專利範圍第9項所述的記憶體控制電路單元,其 中上述記憶體管理電路執行該第一重新映射操作的運作是在該第一裝置的該至少一第一實體抹除單元已被寫滿且記憶體管理電路從該主機系統接收到更新該第一資料的一寫入指令時被執行。
  11. 如申請專利範圍第8項所述的記憶體控制電路單元,其中在上述倘若該些裝置的該運作狀態符合該預定條件,該記憶體管理電路更用以執行對應該預定條件的該重新映射操作的運作中,倘若該記憶體管理電路從該主機系統接收到一格式化指令或一清除所有資料指令,該記憶體管理電路判定該些裝置的該運作狀態符合一第二預定條件,並且執行對應該第二預定條件的一第二重新映射操作,其中該第二重新映射操作包括該記憶體管理電路將該第一邏輯單元組的該至少一第一邏輯單元重新映射至該第二裝置的該至少一第一實體抹除單元,將該第一邏輯單元組的其他邏輯單元重新映射至該第二裝置的其他實體抹除單元,並且將該第二邏輯單元組的邏輯單元重新映射至該第一裝置的實體抹除單元。
  12. 如申請專利範圍第11項所述的記憶體控制電路單元,其中該記憶體管理電路記錄每一該些裝置的一磨損程度值,並且該第二裝置的該磨損程度值小於該些裝置之中其他裝置的磨損程度值。
  13. 如申請專利範圍第11項所述的記憶體控制電路單元,在上述該記憶體管理電路更用以執行該第二重新映射操作的運作 中,該記憶體管理電路依據該第二裝置的每一該些實體抹除單元的抹除次數選擇該第二裝置的該至少一第一實體抹除單元,其中該第二裝置的該至少一第一實體抹除單元的抹除次數小於該第二裝置的其他實體抹除單元的抹除次數。
  14. 如申請專利範圍第8項所述的記憶體控制電路單元,其中該第一資料的一更新頻率大於一第二資料的該更新頻率,其中該第二資料是被儲存在該些實體抹除單元中非儲存該第一資料的其他實體抹除單元的資料。
  15. 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,具有多個裝置,其中每一該些裝置具有多個實體抹除單元;一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以配置多個邏輯單元,其中該些邏輯單元包括一第一邏輯單元組與一第二邏輯單元組,其中該記憶體控制電路單元更用以將該第一邏輯單元組的邏輯單元映射至該些裝置之中的一第一裝置的實體抹除單元並且將該第二邏輯單元組的邏輯單元映射至該些裝置之中的一第二裝置的實體抹除單元,其中該記憶體控制電路單元更用以從一主機系統接收儲存至 該第一邏輯單元組中的至少一第一邏輯單元的一第一資料,並且將該第一資料寫入至映射至該至少一第一邏輯單元的該第一裝置的至少一第一實體抹除單元,其中倘若該些裝置的一運作狀態符合一預定條件,該記憶體控制電路單元更用以執行對應該預定條件的一重新映射操作,並且倘若該些裝置的該運作狀態不符合該預定條件時,該記憶體控制電路單元不執行該重新映射操作。
  16. 如申請專利範圍第15項所述的記憶體儲存裝置,其中在上述倘若該些裝置的該運作狀態符合該預定條件,該記憶體控制電路單元更用以執行對應該預定條件的該重新映射操作的運作中,該記憶體控制電路單元記錄每一該些裝置的一磨損程度值,其中倘若經由該第一裝置的該磨損程度值減去該第二裝置的該磨損程度值所獲得的一差值大於一預定磨損門檻值時,該記憶體控制電路單元判定該些裝置的該運作狀態符合一第一預定條件,並且執行對應該第一預定條件的一第一重新映射操作,其中該第一重新映射操作包括將該第一資料儲存至該第二裝置的該至少一第一實體抹除單元,並且將該第一邏輯單元組的該至少一第一邏輯單元重新映射至該第二裝置的該至少一第一實體抹除單元。
  17. 如申請專利範圍第16項所述的記憶體儲存裝置,其中上述記憶體控制電路單元執行該第一重新映射操作的運作是在該第 一裝置的該至少一第一實體抹除單元已被寫滿且記憶體控制電路單元從該主機系統接收到更新該第一資料的一寫入指令時被執行。
  18. 如申請專利範圍第15項所述的記憶體儲存裝置,其中在上述倘若該些裝置的該運作狀態符合該預定條件,該記憶體控制電路單元更用以執行對應該預定條件的該重新映射操作的運作中,倘若該記憶體控制電路單元從該主機系統接收到一格式化指令或一清除所有資料指令,該記憶體控制電路單元判定該些裝置的該運作狀態符合一第二預定條件,並且執行對應該第二預定條件的一第二重新映射操作,其中該第二重新映射操作包括該記憶體控制電路單元將該第一邏輯單元組的該至少一第一邏輯單元重新映射至該第二裝置的該至少一第一實體抹除單元,將該第一邏輯單元組的其他邏輯單元重新映射至該第二裝置的其他實體抹除單元,並且將該第二邏輯單元組的邏輯單元重新映射至該第一裝置的實體抹除單元。
  19. 如申請專利範圍第18項所述的記憶體儲存裝置,其中該記憶體控制電路單元記錄每一該些裝置的一磨損程度值,並且該第二裝置的該磨損程度值小於該些裝置之中其他裝置的磨損程度值。
  20. 如申請專利範圍第18項所述的記憶體儲存裝置,在上述該記憶體控制電路單元更用以執行該第二重新映射操作的運作 中,該記憶體控制電路單元依據該第二裝置的每一該些實體抹除單元的抹除次數選擇該第二裝置的該至少一第一實體抹除單元,其中該第二裝置的該至少一第一實體抹除單元的抹除次數小於該第二裝置的其他實體抹除單元的抹除次數。
  21. 如申請專利範圍第15項所述的記憶體儲存裝置,其中該第一資料的一更新頻率大於一第二資料的該更新頻率,其中該第二資料是被儲存在該些實體抹除單元中非儲存該第一資料的其他實體抹除單元的資料。
TW104102669A 2015-01-27 2015-01-27 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置 TWI536166B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW104102669A TWI536166B (zh) 2015-01-27 2015-01-27 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置
US14/645,368 US9946476B2 (en) 2015-01-27 2015-03-11 Memory management method, memory control circuit unit and memory storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104102669A TWI536166B (zh) 2015-01-27 2015-01-27 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TWI536166B true TWI536166B (zh) 2016-06-01
TW201627867A TW201627867A (zh) 2016-08-01

Family

ID=56434471

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104102669A TWI536166B (zh) 2015-01-27 2015-01-27 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置

Country Status (2)

Country Link
US (1) US9946476B2 (zh)
TW (1) TWI536166B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI584292B (zh) * 2016-09-08 2017-05-21 群聯電子股份有限公司 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置
TWI716234B (zh) * 2019-12-24 2021-01-11 睿寬智能科技有限公司 靜態耗損平均方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681653B (zh) * 2016-09-14 2019-10-25 合肥兆芯电子有限公司 存储器抹除方法、存储器控制电路单元及存储器存储装置
JP7316818B2 (ja) * 2019-03-28 2023-07-28 株式会社アドバンテスト 波形データ取得モジュールおよび試験装置
JP7252830B2 (ja) 2019-05-29 2023-04-05 株式会社アドバンテスト 試験装置
US11211136B2 (en) * 2019-06-26 2021-12-28 Micron Technology, Inc. Memory system tester using test pad real time monitoring

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
TWI464585B (zh) 2012-06-07 2014-12-11 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
CN102906714A (zh) * 2010-05-05 2013-01-30 马维尔国际贸易有限公司 缓存存储适配器架构
TWI563383B (en) * 2012-04-25 2016-12-21 Phison Electronics Corp Memory formatting method, memory controller and memory storage apparatus
TWI454916B (zh) 2012-05-08 2014-10-01 Phison Electronics Corp 儲存單元管理方法、記憶體控制器與記憶體儲存裝置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI584292B (zh) * 2016-09-08 2017-05-21 群聯電子股份有限公司 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置
TWI716234B (zh) * 2019-12-24 2021-01-11 睿寬智能科技有限公司 靜態耗損平均方法

Also Published As

Publication number Publication date
TW201627867A (zh) 2016-08-01
US20160216906A1 (en) 2016-07-28
US9946476B2 (en) 2018-04-17

Similar Documents

Publication Publication Date Title
US9268687B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9582416B2 (en) Data erasing method, memory control circuit unit and memory storage apparatus
TWI524183B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI587304B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US9880742B2 (en) Valid data merging method, memory controller and memory storage apparatus
TWI536166B (zh) 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置
TW201537576A (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TW201437807A (zh) 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
US9141530B2 (en) Data writing method, memory controller and memory storage device
TWI676176B (zh) 資料整併方法、記憶體儲存裝置及記憶體控制電路單元
TWI656531B (zh) 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置
TW201802680A (zh) 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置
TW201703048A (zh) 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置
TW202038098A (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
US9298610B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
TWI548991B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI501244B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TW201407614A (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI533309B (zh) 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
TW201413450A (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI553477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN112068782B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
TWI554884B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN112445418B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
CN111813325B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元