TW201717020A - 資料重建方法與系統及其記憶體控制電路單元 - Google Patents

資料重建方法與系統及其記憶體控制電路單元 Download PDF

Info

Publication number
TW201717020A
TW201717020A TW104136614A TW104136614A TW201717020A TW 201717020 A TW201717020 A TW 201717020A TW 104136614 A TW104136614 A TW 104136614A TW 104136614 A TW104136614 A TW 104136614A TW 201717020 A TW201717020 A TW 201717020A
Authority
TW
Taiwan
Prior art keywords
entity
logical
mapping information
information
unit
Prior art date
Application number
TW104136614A
Other languages
English (en)
Other versions
TWI579696B (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 TW104136614A priority Critical patent/TWI579696B/zh
Priority to US14/996,214 priority patent/US9940189B2/en
Application granted granted Critical
Publication of TWI579696B publication Critical patent/TWI579696B/zh
Publication of TW201717020A publication Critical patent/TW201717020A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • 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/7202Allocation control and policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一種資料重建方法與系統及其記憶體控制電路單元。此方法包括讀取儲存於可複寫式非揮發性記憶體模組中的實體-邏輯映射資訊及其對應的時間資訊。此方法也包括根據實體-邏輯映射資訊所對應的時間資訊排序實體-邏輯映射資訊。此方法更包括:根據已排序的實體-邏輯映射資訊重新建立邏輯-實體映射表,且將重新建立的邏輯-實體映射表回存至緩衝記憶體。

Description

資料重建方法與系統及其記憶體控制電路單元
本發明是有關於一種資料重建方法,且特別是有關於一種可重建映射表的資料重建方法與系統及其記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
為了進行資料存取,利用可複寫式非揮發性記憶體模組作為儲存媒體的記憶體儲存裝置會將邏輯位址與實體位址之間的映射關係記錄在邏輯-實體映射表中。一般來說,當寫入資料至記憶體儲存裝置時,會一併更新邏輯-實體映射表中的映射資訊。然而,記憶體儲存裝置在經過一段時間的使用之後,可能因人為因素或其他原因而使可複寫式非揮發性記憶體模組中的實體抹除單元損壞。倘若,損壞的實體抹除單元恰好儲存了邏輯-實體映射表,將導致無法正常存取記憶體儲存裝置中的資料的情況。因此,如何重建邏輯-實體映射表進而取得記憶體儲存裝置中的資料,為此領域技術人員所關心的議題。
本發明提供一種資料重建方法與系統及其記憶體控制電路單元,當可複寫式非揮發性記憶體模組發生損壞而使邏輯-實體映射表損毀時,可依據既有的實體-邏輯映射資訊重建邏輯-實體映射表,進而識別可複寫式非揮發性記憶體模組中所儲存的資料。
本發明的資料重建方法,用於記憶體儲存裝置。此記憶體儲存裝置具有可複寫式非揮發性記憶體模組,且此可複寫式非揮發性記憶體模組具有多個實體抹除單元。本資料重建方法包括讀取儲存於可複寫式非揮發性記憶體模組中的實體-邏輯映射資訊以及對應於實體-邏輯映射資訊的時間資訊,並且根據時間資訊排序實體-邏輯映射資訊。本資料重建方法還包括根據已排序的實體-邏輯映射資訊建立多個邏輯-實體映射資訊以產生邏輯-實體映射表,並且將此邏輯-實體映射表回存至記憶體儲存裝置的緩衝記憶體中。
在本發明的一範例實施例中,上述將邏輯-實體映射表回存至記憶體儲存裝置的緩衝記憶體中的步驟包括根據對應於一讀取指令的最大讀取資料量計算邏輯位址個數,並且根據邏輯位址個數將邏輯-實體映射表的多個邏輯-實體映射資訊分批寫入至記憶體儲存裝置的緩衝記憶體中。
在本發明的一範例實施例中,上述時間資訊包括寫入時間資訊及整理時間資訊。
在本發明的一範例實施例中,上述的實體-邏輯映射資訊包括第一實體-邏輯映射資訊及第二實體-邏輯映射資訊。上述根據時間資訊排序此些實體-邏輯映射資訊的步驟包括根據寫入時間資訊排序實體-邏輯映射資訊。倘若第一實體-邏輯映射資訊的第一寫入時間資訊與第二實體-邏輯映射資訊的第二寫入時間資訊相同,根據第一實體-邏輯映射資訊的第一整理時間資訊與第二實體-邏輯映射資訊的第二整理時間資訊排序第一實體-邏輯映射資訊及第二實體-邏輯映射資訊。
在本發明的一範例實施例中,上述的實體-邏輯映射資訊包括第三實體-邏輯映射資訊及第四實體-邏輯映射資訊。上述根據已排序的實體-邏輯映射資訊建立邏輯-實體映射資訊以產生邏輯-實體映射表的步驟更包括倘若第三實體-邏輯映射資訊及第四實體-邏輯映射資訊包括相同的邏輯位址,且第四實體-邏輯映射資訊的時間資訊排序在第三實體-邏輯映射資訊的時間資訊之後,根據第四實體-邏輯映射資訊更新邏輯-實體映射表。
在本發明的一範例實施例中,上述的每一實體抹除單元具有多個實體程式化單元,其中此些實體程式化單元包括第一實體程式化單元及第二實體程式化單元。上述的資料重建方法在產生邏輯-實體映射表的步驟之後更包括讀取第一實體程式化單元的第一資訊及第一邏輯位址,其中第一實體程式化單元所對應的第五實體-邏輯映射資訊尚未儲存至可複寫式非揮發性記憶體模組中。再者,更根據邏輯-實體映射表讀取第一邏輯位址所映射的第二實體程式化單元中的第二資訊。倘若第一資訊與第二資訊不相同,更新邏輯-實體映射表中的第一邏輯位址映射至第一實體程式化單元。
在本發明的一範例實施例中,上述的資料重建方法在讀取儲存於可複寫式非揮發性記憶體中的實體-邏輯映射資訊之前更包括將來自於主機系統的資料重建控制碼載入至記憶體儲存裝置的緩衝記憶體中。此資料重建控制碼會運行以根據主機系統的至少一指令讀取儲存於可複寫式非揮發性記憶體模組中的實體-邏輯映射資訊。
在本發明的一範例實施例中,上述的實體-邏輯映射資訊是儲存在可複寫式非揮發性記憶體模組的至少一實體抹除單元中的資料位元區,並且時間資訊是儲存在此實體抹除單元中的冗餘位元區。
在本發明的一範例實施例中,上述的資料重建方法更包括記錄實體-邏輯映射資訊在緩衝記憶體中。並且,將記錄在緩衝記憶體中的實體-邏輯映射資訊以及實體-邏輯映射資訊所對應的時間資訊儲存至可複寫式非揮發性記憶體模組中。
本發明的記憶體控制電路單元,配置於記憶體儲存裝置,用於控制記憶體儲存裝置的可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體抹除單元。本記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。主機介面耦接至主機系統。記憶體介面耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面。記憶體管理電路讀取儲存於可複寫式非揮發性記憶體模組中的實體-邏輯映射資訊以及對應於實體-邏輯映射資訊的時間資訊,並且根據時間資訊排序實體-邏輯映射資訊。另,記憶體管理電路還根據已排序的實體-邏輯映射資訊建立多個邏輯-實體映射資訊以產生邏輯-實體映射表,並且將邏輯-實體映射表載入至記憶體儲存裝置的緩衝記憶體中。
在本發明的一範例實施例中,上述的記憶體管理電路根據對應於一讀取指令的最大讀取資料量計算邏輯位址個數,並且根據邏輯位址個數將邏輯-實體映射表的多個邏輯-實體映射資訊分批載入至記憶體儲存裝置的該緩衝記憶體中。
在本發明的一範例實施例中,上述的時間資訊包括寫入時間資訊及整理時間資訊。
在本發明的一範例實施例中,上述的實體-邏輯映射資訊包括第一實體-邏輯映射資訊及第二實體-邏輯映射資訊。上述的記憶體管理電路根據寫入時間資訊排序實體-邏輯映射資訊。倘若第一實體-邏輯映射資訊的第一寫入時間資訊與第二實體-邏輯映射資訊的第二寫入時間資訊相同,上述的記憶體管理電路更根據第一實體-邏輯映射資訊的第一整理時間資訊與第二實體-邏輯映射資訊的第二整理時間資訊排序第一實體-邏輯映射資訊及第二實體-邏輯映射資訊。
在本發明的一範例實施例中,上述的實體-邏輯映射資訊包括第三實體-邏輯映射資訊及第四實體-邏輯映射資訊。倘若第三實體-邏輯映射資訊及第四實體-邏輯映射資訊包括相同的邏輯位址,並且第四實體-邏輯映射資訊排序在第三實體-邏輯映射資訊之後,上述的記憶體管理電路更根據第四實體-邏輯映射資訊更新邏輯-實體映射表。
在本發明的一範例實施例中,上述的每一實體抹除單元具有多個實體程式化單元,其中此些實體程式化單元包括一第一實體程式化單元及一第二實體程式化單元。上述的記憶體管理電路更讀取第一實體程式化單元的第一資訊及第一邏輯位址,其中此第一實體程式化單元所對應的第五實體-邏輯映射資訊尚未儲存至可複寫式非揮發性記憶體模組中。再者,上述的記憶體管理電路更根據邏輯-實體映射表讀取第一邏輯位址所映射的第二實體程式化單元中的第二資訊。倘若第一資訊與第二資訊不相同,記憶體管理電路更新邏輯-實體映射表中的第一邏輯位址映射至第一實體程式化單元。
在本發明的一範例實施例中,上述的記憶體管理電路更將來自於主機系統的資料重建控制碼載入至記憶體儲存裝置的緩衝記憶體中。此資料重建控制碼會運行以使上述的記憶體管理電路根據主機系統的至少一指令讀取儲存於可複寫式非揮發性記憶體模組中的實體-邏輯映射資訊。
在本發明的一範例實施例中,上述的實體-邏輯映射資訊是儲存在可複寫式非揮發性記憶體模組的至少一實體抹除單元中的資料位元區,並且時間資訊是儲存在此實體抹除單元中的冗餘位元區。
在本發明的一範例實施例中,上述的記憶體管理電路記錄實體-邏輯映射資訊在緩衝記憶體中,並且將記錄在緩衝記憶體中的實體-邏輯映射資訊以及實體-邏輯映射資訊所對應的時間資訊儲存至可複寫式非揮發性記憶體模組中。
本發明的資料重建系統包括主機系統及記憶體儲存裝置。主機系統具有資料重建單元。記憶體儲存裝置包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。連接介面單元耦接至主機系統。可複寫式非揮發性記憶體模組具有多個實體抹除單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。資料重建單元傳送至少一讀取指令至記憶體儲存裝置,且記憶體控制電路單元根據此讀取指令讀取儲存於可複寫式非揮發性記憶體模組中的實體-邏輯映射資訊以及對應於實體-邏輯映射資訊的時間資訊以回應於此讀取指令。資料重建單元更根據時間資訊排序實體-邏輯映射資訊。另,資料重建單元更根據已排序的實體-邏輯映射資訊建立多個邏輯-實體映射資訊以產生邏輯-實體映射表,並且將邏輯-實體映射表回存至記憶體儲存裝置的緩衝記憶體中。
在本發明的一範例實施例中,上述的資料重建單元根據對應於一讀取指令的最大讀取資料量計算邏輯位址個數,並且根據邏輯位址個數將邏輯-實體映射表的多個邏輯-實體映射資訊分批寫入至記憶體儲存裝置的該緩衝記憶體中。
在本發明的一範例實施例中,上述的時間資訊包括寫入時間資訊及整理時間資訊。
在本發明的一範例實施例中,上述的實體-邏輯映射資訊包括第一實體-邏輯映射資訊及第二實體-邏輯映射資訊。上述的資料重建單元更根據寫入時間資訊排序實體-邏輯映射資訊。倘若第一實體-邏輯映射資訊的第一寫入時間資訊與第二實體-邏輯映射資訊的第二寫入時間資訊相同,上述的資料重建單元更根據第一實體-邏輯映射資訊的第一整理時間資訊與第二實體-邏輯映射資訊的第二整理時間資訊排序第一實體-邏輯映射資訊及第二實體-邏輯映射資訊。
在本發明的一範例實施例中,上述的實體-邏輯映射資訊包括第三實體-邏輯映射資訊及第四實體-邏輯映射資訊。倘若第三實體-邏輯映射資訊及第四實體-邏輯映射資訊包括相同的邏輯位址,並且第四實體-邏輯映射資訊排序在第三實體-邏輯映射資訊之後,上述的資料重建單元根據第四實體-邏輯映射資訊更新邏輯-實體映射表。
在本發明的一範例實施例中,上述的每一實體抹除單元具有多個實體程式化單元,其中此些實體程式化單元包括第一實體程式化單元及第二實體程式化單元。上述的資料重建單元傳送第一讀取指令至記憶體儲存裝置,且上述的記憶體控制電路單元根據第一讀取指令讀取第一實體程式化單元的第一資訊及第一邏輯位址以回應於第一讀取指令,並且第一實體程式化單元所對應的第五實體-邏輯映射資訊尚未儲存至可複寫式非揮發性記憶體模組中。再者,上述的資料重建單元更根據第一邏輯位址及邏輯-實體映射表傳送第二讀取指令至記憶體儲存裝置,且上述的記憶體控制電路單元更根據第二讀取指令讀取第一邏輯位址所映射的第二實體程式化單元中的第二資訊以回應於第二讀取指令。倘若第一資訊與第二資訊不相同,上述的資料重建單元更新邏輯-實體映射表中的第一邏輯位址映射至第一實體程式化單元。
在本發明的一範例實施例中,上述的資料重建單元更傳送資料重建控制碼至記憶體儲存裝置,且上述的記憶體控制電路單元更將此資料重建控制碼載入至記憶體儲存裝置的緩衝記憶體中。此資料重建控制碼會運行以使上述的記憶體控制電路單元根據上述的資料重建單元的讀取指令讀取儲存於可複寫式非揮發性記憶體模組中的實體-邏輯映射資訊。
在本發明的一範例實施例中,上述的實體-邏輯映射資訊是儲存在可複寫式非揮發性記憶體模組的至少一實體抹除單元中的資料位元區,並且時間資訊是儲存此實體抹除單元中的冗餘位元區。
在本發明的一範例實施例中,上述的記憶體控制電路單元記錄實體-邏輯映射資訊在緩衝記憶體中,並且將記錄在緩衝記憶體中的實體-邏輯映射資訊以及實體-邏輯映射資訊所對應的時間資訊儲存至可複寫式非揮發性記憶體模組中。
基於上述,在可複寫式非揮發性記憶體模組發生損壞而無法存取邏輯-實體映射表時,可根據儲存在可複寫式非揮發性記憶體模組中的實體-邏輯映射資訊,重建出存取資料所需的邏輯-實體映射表。並且,可將重建的邏輯-實體映射表儲存至記憶體儲存裝置的緩衝記憶體以供存取,進而正確地讀出儲存於可複寫式非揮發性記憶體模組中的資料。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路單元)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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 Storage, 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可為其所使用的SD卡32、CF卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded MMC, eMMC)341及/或嵌入式多晶片封裝儲存裝置(embedded Multi Chip Package, eMCP)342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合並列先進附件(Parellel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準、通用序列匯流排(Universal Serial Bus, USB)標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、安全數位(Secure Digital, SD)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、嵌入式多媒體儲存卡(Embedded Multimedia Card, eMMC)介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404,並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406具有實體抹除單元410(0)~ 410(N)。例如,實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含8個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組406為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個資料位元的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組406亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個資料位元的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個資料位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
在本範例實施例中,主機系統11藉由資料重建單元408來傳送控制指令至記憶體儲存裝置10以進行資料重建,而記憶體控制電路單元404會執行對應操作以回應於從主機系統所接收的指令。例如,資料重建單元408包括以軟體程式碼所實作的資料重建應用程式,其可於主機系統11的作業系統(operation system,OS)中運行。在本範例實施例中,主機系統11的作業系統為微軟(Microsoft)公司的視窗(Windows)作業系統。然而,必須瞭解的是,本發明不限於此,本發明亦可應用於Linux、Mac或其他作業系統中。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504與記憶體介面506、緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組406中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。
主機介面504是耦接至記憶體管理電路502並且用以耦接至連接介面單元402,以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面504來傳送至記憶體管理電路502。在本範例實施例中,主機介面504是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準 、UHS-II介面標準、SD標準 、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。
緩衝記憶體508是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。
電源管理電路510是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
錯誤檢查與校正電路512是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路512會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路512會根據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖6,記憶體控制電路單元404(或記憶體管理電路502)會將實體抹除單元410(0)~410(N)邏輯地分組為資料區602、閒置區604、系統區606與取代區608。
邏輯上屬於資料區602與閒置區604的實體抹除單元是用以儲存來自於主機系統11的資料。具體來說,資料區602的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區604的實體抹除單元是用以替換資料區602的實體抹除單元。也就是說,當從主機系統11接收到寫入指令與欲寫入之資料時,記憶體管理電路502會從閒置區604中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區602的實體抹除單元。
邏輯上屬於系統區606的實體抹除單元是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區608中的實體抹除單元是用於壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區608中仍存有正常之實體抹除單元並且資料區602的實體抹除單元損壞時,記憶體管理電路502會從取代區608中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,資料區602、閒置區604、系統區606與取代區608之實體抹除單元的數量會根據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置10的運作中,實體抹除單元關聯至資料區602、閒置區604、系統區606與取代區608的分組關係會動態地變動。例如,當閒置區604中的實體抹除單元損壞而被取代區608的實體抹除單元取代時,則原本取代區608的實體抹除單元會被關聯至閒置區604。
請參照圖7,記憶體控制電路單元404(或記憶體管理電路502)會配置邏輯單元LBA(0)~LBA(H)以映射資料區602的實體抹除單元,其中每一邏輯單元具有多個邏輯子單元以映射對應之實體抹除單元的實體程式化單元。並且,當主機系統11欲寫入資料至邏輯單元或更新儲存於邏輯單元中的資料時,記憶體控制電路單元404(或記憶體管理電路502)會從閒置區604中提取一個實體抹除單元來寫入資料,以輪替資料區602的實體抹除單元。在本範例實施例中,邏輯子單元可以是邏輯頁面或邏輯扇區。
為了識別每個邏輯單元的資料被儲存在哪個實體抹除單元,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會記錄邏輯單元與實體抹除單元之間的映射。並且,當主機系統11欲在邏輯子單元中存取資料時,記憶體控制電路單元404(或記憶體管理電路502)會確認此邏輯子單元所屬的邏輯單元,並且在此邏輯單元所映射的實體抹除單元中來存取資料。例如,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會在可複寫式非揮發性記憶體模組406中儲存邏輯-實體映射表來記錄每一邏輯單元所映射的實體抹除單元,並且當欲存取資料時記憶體控制電路單元404(或記憶體管理電路502)會將邏輯-實體映射表載入至緩衝記憶體508來維護。
值得一提的是,由於緩衝記憶體508的容量有限無法儲存記錄所有邏輯單元之映射關係的映射表,因此,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會將邏輯單元LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯-實體映射表。特別是,當記憶體控制電路單元404(或記憶體管理電路502)欲更新某個邏輯單元的映射時,對應此邏輯單元所屬之邏輯區域的邏輯-實體映射表會被載入至緩衝記憶體508來被更新。
在本範例實施例中,記憶體儲存裝置10的可複寫式非揮發性記憶體模組406是以實體程式化單元為基礎(亦稱為頁面為基礎(page based))來進行管理。例如,在執行寫入指令時,不管目前資料是要寫入至哪個邏輯單元所對應的邏輯程式化單元,記憶體控制電路單元404(或記憶體管理電路502)皆會以一個實體程式化單元接續一個實體程式化單元的方式來寫入資料(亦稱為隨機寫入機制)。具體來說,以下亦稱為隨機寫入機制會從閒置區504中提取一個空的實體抹除單元作為目前使用之實體抹除單元(亦稱為作動實體抹除單元)來寫入資料。並且,當此目前使用之實體抹除單元已被寫滿時,記憶體控制電路單元404(或記憶體管理電路502)會再從閒置區504中提取另一個空的實體抹除單元作為目前使用之實體抹除單元,以繼續寫入資料。
在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)還會在緩衝記憶體508中劃分出一區域以記錄多個實體-邏輯映射資訊。實體-邏輯映射資訊是記錄用以儲存資料的實體單元至邏輯單元的映射關係。爾後,記憶體控制電路單元404(或記憶體管理電路502)會再將記錄在緩衝記憶體508中的實體-邏輯映射資訊儲存至可複寫式非揮發性記憶體模組406中。例如,對應於將某筆資料寫入至閒置區504中的某個實體抹除單元,則對應於此筆資料的實體-邏輯映射資訊會先被記錄在緩衝記憶體508中,爾後再被儲存至此實體抹除單元中的實體程式化單元中。
特別是,在本範例實施例中,關於實體-邏輯映射資訊的時間資訊也會一併被儲存至實體抹除單元中,以表示此實體-邏輯映射資訊的產生時間。例如,時間資訊可根據將寫入資料寫入至實體抹除單元的時間來設定,或者也可根據實體-邏輯映射資訊被寫入至實體抹除單元中的時間來設定。此外,記憶體控制電路單元404(或記憶體管理電路502)會將實體-邏輯映射資訊儲存至實體抹除單元的資料位元區,並且將對應於實體-邏輯映射資訊的時間資訊儲存至實體抹除單元的冗餘位元區。
圖8是根據一範例實施例所繪示的儲存在實體抹除單元中的實體-邏輯映射資訊及時間資訊的示意圖。
請參照圖8,實體-邏輯映射資訊是儲存在實體抹除單元的資料位元區並且包括表示實體單元與邏輯單元的映射關係的資訊,時間資訊是儲存在實體抹除單元的冗餘位元區並且包括表示對應此映射關係的時間。在本範例實施例中,儲存在實體抹除單元中的實體-邏輯映射資訊會記錄此實體抹除單元所映射的邏輯位址,並且確實的映射關係是依據邏輯位址在此實體抹除單元中的實際儲存位址來辨別。然而,在另一範例實施例中,實體-邏輯映射資訊中也可以包括不同於上述的資訊或判斷方法來辨識實體單元與邏輯單元的映射關係。
此外,在本範例實施例中,時間資訊可包括寫入時間資訊及整理時間資訊。寫入時間資訊及整理時間資訊可預設為預設值。而當執行一般寫入操作而需儲存實體-邏輯映射資訊時,記憶體控制電路單元404(或記憶體管理電路502)會以對應一般寫入操作的執行時間來設定實體-邏輯映射資訊的寫入時間資訊。另外,當在背景執行資料整理操作(例如,資料合併或垃圾收集(garbage collection)等)而需儲存實體-邏輯映射資訊時,記憶體控制電路單元404(或記憶體管理電路502)會另外以對應資料整理操作的執行時間來設定實體-邏輯映射資訊的整理時間資訊。
舉例而言,對應於一般寫入操作,會更新實體-邏輯映射資訊的寫入時間資訊。而對應於在背景執行的資料整理操作,不僅會更新實體-邏輯映射資訊的寫入時間資訊,還會更新實體-邏輯映射資訊的整理時間資訊。時間資訊可依據操作的執行時間的先後以遞增的順序值(例如1、2、3…等)來設定。例如,寫入時間資訊及整理時間資訊的預設值為0。對應於一般寫入操作,可依一般寫入操作的執行時間先後,依序將對應的寫入時間資訊設定為序列數值1、2、3…等。對應於資料整理操作,可依資料整理操作的執行時間先後,依序將對應的整理時間資訊設定為序列數值1、2、3…等。此外,在另一範例實施例中,亦可在資料整理操作完成後將整理時間資訊重新設定。例如,假設整理時間資訊依資料整理操作的執行時間先後,依序將對應的整理時間資訊設定為1、2、3。在下次執行資料整理操作時,對應的整理時間資訊會從1開始設定。
值得一提的是,在本範例實施例中,時間資訊雖然是同時包括寫入時間資訊及整理時間資訊,然而,在另一範例實施例中,時間資訊亦可僅包括寫入時間資訊,而不包括整理時間資訊。
圖9是根據一範例實施例所繪示的對應一般寫入操作而儲存實體-邏輯映射資訊的示意圖。
請參照圖9,記憶體控制電路單元404(或記憶體管理電路502)會接收寫入指令與對應於此寫入指令的寫入資料D(0)~D(E)。在本範例實施例中,是假設此寫入指令指示將寫入資料D(0)~D(E)寫入邏輯程式化單元910(0)~910(E)。
記憶體控制電路單元404(或記憶體管理電路502)會從可複寫式非揮發性記憶體模組406中提取至少一個實體抹除單元來寫入此寫入資料。例如,記憶體控制電路單元404(或記憶體管理電路502)將寫入資料D(0)~D(E)儲存至實體抹除單元410(F)的實體程式化單元410(F-0)~410(F-E)中。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)可在緩衝記憶體508中劃分出區域920。並且,記憶體控制電路單元404(或記憶體管理電路502)會將對應於寫入資料D(0)~D(E)的實體-邏輯映射資訊921暫存在緩衝記憶體508中的區域920中,爾後再將記錄在區域920中的實體-邏輯映射資訊921儲存至實體抹除單元410(F)中。例如,實體-邏輯映射資訊921是記錄了寫入資料D(0)~D(E)所對應的邏輯程式化單元910(0)~910(E)的邏輯位址LA(0)~LA(E)。
詳細而言,記憶體控制電路單元404(或記憶體管理電路502)會將寫入資料D(0)~D(E)儲存至實體程式化單元410(F-0)~ 410(F-E)的資料位元區,並且將對應於寫入資料D(0)~D(E)的邏輯程式化單元910(0)~910(E)的邏輯位址LA(0)~LA(E)記錄在實體程式化單元410(F-0)~ 410(F-E)的冗餘位元區。爾後,記憶體控制電路單元404(或記憶體管理電路502)會將緩衝記憶體508中的實體-邏輯映射資訊921儲存至實體程式化單元410(F-F)。如圖9所示,實體-邏輯映射資訊921被儲存至實體程式化單元410(F-F)的資料位元區。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)將實體-邏輯映射資訊921儲存至實體程式化單元410(F-F)的資料位元區時,會一併將對應於實體-邏輯映射資訊921的時間資訊儲存至實體程式化單元410(F-F)的冗餘位元區。由於,本範例實施例是對應於一般寫入操作,因此會設定寫入時間資訊來代表實體-邏輯映射資訊921的時間,例如,將寫入時間資訊設定為1。而整理時間資訊則可被設定為預設值,例如0,或依實際需求設定,在此不加以限制。值得一提的是,在本範例實施例中,實體程式化單元與邏輯程式化單元是一對一的映射關係,然而,在其它範例實施例中,實體程式化單元與邏輯程式化單元也可是一對多的映射。例如,寫入資料經過壓縮的情況,一個實體程式化單元可能會對應多個邏輯程式化單元。
圖10A是根據一範例實施例所繪示的對應垃圾收集操作而儲存實體-邏輯映射資訊的示意圖。圖10B是根據另一範例實施例所繪示的對應垃圾收集操作而儲存實體-邏輯映射資訊的示意圖。
請參照圖10,當對實體抹除單元410(0)及實體抹除單元410(1)執行垃圾收集操作時,記憶體控制電路單元404(或記憶體管理電路502)會將實體抹除單元410(0)及實體抹除單元410(1)中的有效資料搬移至另一個實體抹除單元中。例如,記憶體控制電路單元404(或記憶體管理電路502)將實體抹除單元410(0)中的有效資料D1、D2及實體抹除單元410(1)中的有效資料D3儲存至實體抹除單元410(F+1)的資料位元區。記憶體控制電路單元404(或記憶體管理電路502)也將此些有效資料所對應的邏輯位址(即,邏輯位址LA(0)、LA(2)、LA(3))儲存至冗餘位元區。並且,記憶體控制電路單元404(或記憶體管理電路502)會將關於實體抹除單元410(F+1)的實體-邏輯映射資訊922儲存至實體抹除單元410(F+1)中。因此,實體抹除單元410(F+1)會儲存有效資料D1與對應的邏輯位址LA(0)、有效資料D2與對應的邏輯位址LA(2)、有效資料D3與對應的邏輯位址LA(3)以及實體-邏輯映射資訊922。在本範例實施例中,實體-邏輯映射資訊922是記錄了有效資料D1、D2、D3所對應的邏輯位址(即,邏輯位址LA(0)、LA(2)、LA(3))。由於本範例實施例是對應於垃圾收集操作,因此記憶體控制電路單元404(或記憶體管理電路502)會設定寫入時間資訊及整理時間資訊來代表實體-邏輯映射資訊922的時間。例如,在本實施例中,僅使用一個實體抹除單元(即實體抹除單元(F+1))即完成垃圾收集操作,因此,將對應於實體抹除單元(F+1)的整理時間資訊設定為1。而寫入時間資訊可根據對應於一般寫入操作的時間順序來設定。例如,在本範例實施例中,實體-邏輯映射資訊922的寫入時間資訊可設定為3。然而,在另一範例實施例中,寫入時間資訊也可依實際需求設定為其他值。
請參照圖10B,當需從閒置區提取多個實體抹除單元來儲存有效資料以完成一次垃圾收集操作時(例如,從閒置區提取兩個實體抹除單元來儲存有效資料以釋放出三個實體抹除單元),記憶體控制電路單元404(或記憶體管理電路502)可依據此些實體抹除單元被提取以儲存有效資料的時間順序依序設定整理時間資訊。如圖10B所示,假設記憶體控制電路單元404(或記憶體管理電路502)需提取實體抹除單元410(F+1)及410(F+2)來儲存實體抹除單元410(0)、410(1)及410(2)的有效資料,才能完成本次垃圾收集操作。記憶體控制電路單元404(或記憶體管理電路502)會將實體抹除單元410(0)的有效資料D1、D2及實體抹除單元410(1)的有效資料D3儲存至實體抹除單元410(F+1),並且將實體-邏輯映射資訊922儲存至實體抹除單元410(F+1),以及將寫入時間資訊設定為4,而將整理時間資訊設定為1。再者,記憶體控制電路單元404(或記憶體管理電路502)會將實體抹除單元410(1)的有效資料D4及實體抹除單元410(2)的有效資料D5、D6儲存至實體抹除單元410(F+2),並且將實體-邏輯映射資訊926儲存至實體抹除單元410(F+1),以及將寫入時間資訊同樣地設定為4,而將整理時間資訊設定為2。在本範例實施例中,實體-邏輯映射資訊922是記錄了有效資料D1、D2、D3所對應的邏輯位址(即,邏輯位址LA(0)、LA(2)、LA(3)),而實體-邏輯映射資訊926是記錄了有效資料D4、D5、D6所對應的邏輯位址(即,邏輯位址LA(5)、LA(6)、LA(8))。此外,值得一提的是,在本範例實施例中,在完成一次垃圾收集操作的過程中,被提取以儲存有效資料的所有實體抹除單元的寫入時間資訊會被設定為相同值。
上述範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)是將緩衝記憶體508中的實體-邏輯映射資訊儲存至相關的實體抹除單元中。然而,在其它範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)也可將緩衝記憶體508中的實體-邏輯映射資訊儲存至特殊的實體抹除單元中,此特殊的實體抹除單元即是專門用來儲存實體-邏輯映射資訊。
在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會在適當的時間點利用實體-邏輯映射資訊來更新邏輯-實體映射表。例如,當緩衝記憶體508中用來儲存實體-邏輯映射資訊的空間已滿時,記憶體控制電路單元404(或記憶體管理電路502)會根據緩衝記憶體508中的實體-邏輯映射資訊來更新邏輯-實體映射表,並將更新後的邏輯-實體映射表回存至可複寫式非揮發性記憶體模組406中。
然而,當記憶體儲存裝置10使用一段時間之後可能發生可複寫式非揮發性記憶體模組406損壞的情況,使所儲存的邏輯-實體映射表損毀而無法正常存取資料。因此,在本範例實施例中,倘若邏輯-實體映射表已損毀,可透過整理可複寫式非揮發性記憶體模組406的實體-邏輯映射資訊來重建邏輯-實體映射表,進而識別可複寫式非揮發性記憶體模組406所儲存的資料(例如,使用者資料)。
圖11是根據一範例實施例所繪示的建立邏輯-實體映射表的示意圖。
當需要重建資料時,主機系統10會下達控制指令指示記憶體控制電路單元404(或記憶體管理電路502)執行對應操作。例如,記憶體控制電路單元404(或記憶體管理電路502)會根據來自於主機系統10的讀取指令讀取儲存在所有實體抹除單元中的實體-邏輯映射資訊及對應的時間資訊,並將所讀取的實體-邏輯映射資訊及時間資訊回應於主機系統10。更進一步地,主機系統10會根據實體-邏輯映射資訊所對應的時間資訊來整理實體-邏輯映射資訊。在本範例實施例中,假設所讀取的實體-邏輯映射資訊包括對應於實體抹除單元PBA(0)~ PBA(3)的實體-邏輯映射資訊。實體抹除單元PBA(0)的實體-邏輯映射資訊包括邏輯位址LA(0)、LA(1)、LA(2),並且對應於邏輯位址LA(0)、LA(1)、LA(2)的寫入時間資訊與整理時間資訊分別為1與0。實體抹除單元PBA(1)的實體-邏輯映射資訊包括邏輯位址LA(3)、LA(4)、LA(5),並且對應於邏輯位址LA(3)、LA(4)、LA(5)的寫入時間資訊與整理時間資訊分別為2與0。實體抹除單元PBA(2)的實體-邏輯映射資訊包括邏輯位址LA(1)、LA(2)、LA(4),並且對應於LA(1)、LA(2)、LA(4)的寫入時間資訊與整理時間資訊分別為3與0。實體抹除單元PBA(3)的實體-邏輯映射資訊包括邏輯位址LA(0)、LA(3)、LA(5),並且對應於邏輯位址LA(0)、LA(3)、LA(5)的寫入時間資訊及整理時間資訊分別為4與1。主機系統10根據寫入時間資訊及整理時間資訊將實體-邏輯位址映射資訊排序如圖11的整理表格1101所示。需注意的是,在本範例實施例中,整理表格1101中所標示的實體位址對應邏輯位址僅為實體-邏輯映射資訊的示意,實際操作上,實體-邏輯映射資訊可以記錄邏輯位址為主,此部分已於前述內容中說明,在此不再贅述。
此外,在本範例實施例中,主機系統10會先比較對應於實體-邏輯映射資訊的寫入時間資訊,倘若寫入時間資訊相同,再比較整理時間資訊。在另一範例實施例中,也可以不同於上述的判斷方法來決定以寫入時間資訊或整理時間資訊來排序實體-邏輯映射資訊。
如整理表格1101所示,在本範例實施例中,邏輯位址LA(0)會映射至實體抹除單元PBA(0)與實體抹除單元PBA(3),邏輯位址LA(1)及LA(2)會映射至實體抹除單元PBA(0)與實體抹除單元PBA(2),邏輯位址LA(4)會映射至實體抹除單元PBA(1)與實體抹除單元PBA(2),邏輯位址LA(3)及LA(5)會映射至實體抹除單元PBA(1)與實體抹除單元PBA(3)。因此,記憶體控制電路單元404(或記憶體管理電路502)會根據時間資訊來識別出最新的映射關係。例如,關於邏輯位址LA(0)的映射關係,主機系統11根據寫入時間資訊判斷邏輯位址LA(0)映射至實體抹除單元PBA(3)(對應的寫入時間資訊為4)是最新的映射關係,基此建立邏輯位址LA(0)映射至實體位址PA(3-0)的邏輯-實體映射資訊並記錄在邏輯-實體映射表1102中。相同地,關於邏輯位址LA(1)的映射關係,主機系統11根據寫入時間資訊判斷邏輯位址LA(1)映射至實體抹除單元PBA(2)(對應的寫入時間資訊為3)是最新的映射關係,基此建立邏輯位址LA(1)映射至實體位址PA(2-0)的邏輯-實體映射資訊並記錄在邏輯-實體映射表1102中。以此類推,主機系統11可根據經排序的實體-邏輯位址映射資訊的整理表格1101來建立多個邏輯-實體映射資訊以產生邏輯-實體映射表1102。
在本範例實施例中,主機系統11是根據整理表格1101由前往後(即,由舊資料至新資料)逐一掃描已排序的實體-邏輯位址映射資訊,並將最新的映射關係記錄在邏輯-實體映射表1102中。例如,主機系統11掃描到實體位址PA(0-1)映射至邏輯位址LA(1)的映射資訊時,會將邏輯位址LA(1)映射至實體位址PA(0-1)的映射關係記錄在邏輯-實體映射表1102中。爾後,當主機系統11掃描到實體位址PA(2-0)映射至邏輯位址LA(1)的映射資訊時,會以邏輯位址LA(1)映射至實體位址PA(2-0)的映射關係來更新邏輯-實體映射表1102。
在另一範例實施例中,主機系統11亦可根據整理表格1101由後往前(即,由新資料至舊資料)逐一掃描已排序的實體-邏輯位址映射資訊,並將最新的映射關係記錄在邏輯-實體映射表1102中。例如,主機系統11掃描到實體位址PA(2-2)映射至邏輯位址LA(4)的映射資訊時,即可判斷此映射資訊為對應邏輯位址LA(4)的最新的映射關係,並將邏輯位址LA(4)映射至實體位址PA(2-2)的映射關係記錄在邏輯-實體映射表1102中。爾後,當主機系統11掃描到實體位址PA(1-1)映射至邏輯位址LA(4)的映射資訊時,將不會更新邏輯-實體映射表1102。
雖然,記憶體控制電路單元404(或記憶體管理電路502)在將寫入資料儲存至實體抹除單元後,會將對應的實體-邏輯映射資訊儲存至寫入資料的實體抹除單元中。但倘若寫入資料時發生系統運作問題(例如,斷電),使得寫入資料雖已儲存至實體抹除單元,但實體-邏輯映射資訊尚未儲存至實體抹除單元中。如此一來,記憶體控制電路單元404(或記憶體管理電路502)將無法直接從此實體抹除單元的實體程式化單元(例如,實體抹除單元中的最後一個被程式化的實體程式化單元)中取得此實體抹除單元的實體-邏輯映射資訊。
因此,當記憶體控制電路單元404(或記憶體管理電路502)無法從某實體抹除單元的實體程式化單元中取得實體-邏輯映射資訊時,記憶體控制電路單元404(或記憶體管理電路502)會以特定的資料量大小為單位來一一讀取此實體抹除單元中資料位元區所儲存的使用者資料及對應的冗餘位元區所儲存的邏輯位址。記憶體控制電路單元404(或記憶體管理電路502)可從目前已建立的邏輯-實體映射表找出此邏輯位址所映射的實體位址,並讀取儲存在此實體位址的使用者資料。主機系統11進而可藉由比對使用者資料來判斷是否需更新邏輯-實體映射表中的映射資訊。
圖12A及12B是根據一範例實施例所繪示比對使用者資料以更新邏輯-實體映射表的示意圖。
請參照圖12A,在本範例實施例中,主機系統11已根據從實體抹除單元可讀取到的實體-邏輯映射資訊建立了邏輯-實體映射表1201。針對未取得實體-邏輯映射資訊的實體抹除單元,主機系統11會下達讀取指令以指示記憶體控制電路單元404(或記憶體管理電路502)讀取此些實體抹除單元中所儲存的使用者資料及邏輯位址。在本範例實施例中,是以實體程式化單元的大小為單位來讀取使用者資料。舉例而言,請參照圖12B,實體抹除單元410(3)未儲存對應的實體-邏輯映射資訊,記憶體控制電路單元404(或記憶體管理電路502)會讀取實體抹除單元410(3)的使用者資料及對應的邏輯位址。例如,邏輯位址LA(0)對應資料D4,邏輯位址LA(1)對應資料D2,邏輯位址LA(2)對應資料D3。
請同時參照圖12A及12B,記憶體控制電路單元404(或記憶體管理電路502)會查詢目前已建立的邏輯-實體映射表1201,以找出所讀出的邏輯位址映射的實體位址。例如,在邏輯-實體映射表1201中,邏輯位址LA(0)映射至實體位址PA(2-0)(即,實體抹除單元410(2)的實體程式化單元410(2-0)),記憶體控制電路單元404(或記憶體管理電路502)會讀取實體程式化單元410(2-0)所儲存的資料D1。
主機系統11會比對實體抹除單元410(3)中的資料D4及實體抹除單元410(2)中的資料D1,並判斷資料不相同而需更新邏輯-實體映射表1201。主機系統11會根據實體抹除單元410(3)與邏輯位址LA(0)的映射關係來更新邏輯-實體映射表1201。請參照圖12B,在更新後的邏輯-實體映射表1202中,邏輯位址LA(0)的映射資訊會被更新為映射至實體位址PA(3-0)(即,實體抹除單元410(3)的實體程式化單元410(3-0))。
接著,記憶體控制電路單元404(或記憶體管理電路502)會繼續針對實體抹除單元410(3)中的下一筆使用者資料進行比對。例如,實體抹除單元410(3)的實體程式化單元410(3-1)中的資料D2是對應到邏輯位址LA(1)。在邏輯-實體映射表1202中,邏輯位址LA(1)是映射至實體位址PA(2-1)(即,實體抹除單元410(2)的實體程式化單元410(2-1)),記憶體控制電路單元404(或記憶體管理電路502)會讀取實體程式化單元410(2-1)所儲存的資料D2。
主機系統11會比對實體抹除單元410(3)中的資料D2及實體抹除單元410(2)中的資料D2,並判斷資料相同而不更新邏輯-實體映射表1202。
值得一提的是,在本範例實施例的邏輯-實體映射表中,以邏輯位址對應實體位址來表示邏輯單元與實體單元之間的映射關係僅為示意。實際上也可以不同於上述方式來進行表示。
透過上述範例實施例所重建的邏輯-實體映射表將可包括最新的邏輯-實體映射資訊。進而,主機系統11可根據重建的邏輯-實體映射表將可複寫式非揮發性記憶體模組406中的資料正確地讀出。
上述範例實施例中,在重建邏輯-實體映射表的過程裡是由主機系統11來執行相關的運算。主機系統11可以透過下達控制指令來指示記憶體控制電路單元404(或記憶體管理電路502)執行相應操作。此些控制指令可以是有別於一般指令的特殊指令,例如,廠商指令(vender command)。因此,主機系統11可將用以重建資料的資料重建控制碼傳送至記憶體儲存裝置10,記憶體控制電路單元404(或記憶體管理電路502)會將此資料重建控制碼載入至緩衝記憶體508中以運行。此資料重建控制碼會運行使記憶體控制電路單元404(或記憶體管理電路502)可根據主機系統11的特殊指令執行相應操作。然而,在其它範例實施例中,也可以是由記憶體儲存裝置10透過韌體碼運行而執行重建邏輯-實體映射表的過程裡的相關運算。
再者,為了提升讀取資料的速度,還可將重建的邏輯-實體映射表載入至記憶體儲存裝置10的緩衝記憶體508中,使記憶體控制電路單元404(或記憶體管理電路502)可直接存取緩衝記憶體508中的邏輯-實體映射表來讀取儲存在可複寫式非揮發性記憶體模組406中的使用者資料。例如,主機系統11可使用廠商指令將重建的邏輯-實體映射表中的映射資訊分批回存至記憶體儲存裝置10的緩衝記憶體508中。爾後,主機系統11可下達一般讀取指令指示記憶體控制電路單元404(或記憶體管理電路502)讀取可複寫式非揮發性記憶體模組406中的使用者資料。
值得一提的是,每次分批寫入至記憶體儲存裝置10的映射資訊可根據一般讀取指令可讀取的最大讀取資料量來決定。例如,主機系統11可根據一般讀取指令的最大讀取資料量計算可讀取的邏輯位址個數,並根據所計算的邏輯位址個數將邏輯-實體映射表中對應數量的映射資訊寫入至記憶體儲存裝置10的緩衝記憶體中。寫入映射資訊之後,主機系統11可下達一般讀取指令指示記憶體控制電路單元404(或記憶體管理電路502)將此些映射資訊所對應的使用者資料一次讀出。
圖13為根據一範例實施例所繪示的資料重建方法流程圖。
請參照圖13,在步驟S1301中,讀取儲存在可複寫式非揮發性記憶體模組中的實體-邏輯映射資訊及對應於實體-邏輯映射資訊的時間資訊。在步驟S1303中,根據所讀取的時間資訊排序所讀取的實體-邏輯映射資訊。在步驟S1305中,根據已排序的實體-邏輯映射資訊產生邏輯-實體映射表。在步驟S1307中,將所產生的邏輯-實體映射表回存至記憶體儲存裝置的緩衝記憶體中。
在另一範例實施例中,在步驟S1301之前,更包括記錄實體-邏輯映射資訊至記憶體儲存裝置的緩衝記憶體中,並且實體-邏輯映射資訊是記錄多個實體抹除單元的多個邏輯位址。爾後,記錄在緩衝記憶體中的實體-邏輯映射資訊以及對應於實體-邏輯映射資訊的時間資訊會被儲存至可複寫式非揮發性記憶體模組中。
在另一範例實施例中,在步驟S1301之前,更包括將資料重建控制碼載入至記憶體儲存裝置的緩衝記憶體。並且,上述步驟已詳細說明如上,在此不再贅述。
綜上所述,本發明在儲存實體-邏輯映射資訊時,會一併記錄時間資訊,藉以辨識實體-邏輯映射資訊的新舊。爾後,在邏輯-實體映射表無法被正確存取時,可根據最新的實體-邏輯映射資訊來建立邏輯-實體映射資訊。藉此,可正確地重建出存取資料所需的邏輯-實體映射表,並且可根據重建的邏輯-實體映射表將可複寫式非揮發性記憶體模組中的使用者資料正確地讀出。另外,重建的邏輯-實體映射表更可被回存至記憶體儲存裝置的緩衝記憶體中,由此提升讀取資料的效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧輸入/輸出(I/O)裝置
110‧‧‧系統匯流排
111‧‧‧處理器
112‧‧‧隨機存取記憶體(RAM)
113‧‧‧唯讀記憶體(ROM)
114‧‧‧資料傳輸介面
20‧‧‧主機板
201‧‧‧隨身碟
202‧‧‧記憶卡
203‧‧‧固態硬碟
204‧‧‧無線記憶體儲存裝置
205‧‧‧全球定位系統模組
206‧‧‧網路介面卡
207‧‧‧無線傳輸裝置
208‧‧‧鍵盤
209‧‧‧螢幕
210‧‧‧喇叭
30‧‧‧記憶體儲存裝置
31‧‧‧主機系統
32‧‧‧SD卡
33‧‧‧CF卡
34‧‧‧嵌入式儲存裝置
341‧‧‧嵌入式多媒體卡
342‧‧‧嵌入式多晶片封裝儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
408‧‧‧資料重建單元
410(0)~410(N)、PBA(0)~PBA(3)‧‧‧實體抹除單元
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
602‧‧‧資料區
604‧‧‧閒置區
606‧‧‧系統區
608‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
LA(0)~LA(E)‧‧‧邏輯位址
PA(0-0)~PA(0-2)、PA(1-0)~PA(1-2)、PA(2-0)~PA(2-2)、PA(3-0)~PA(3-2)‧‧‧實體位址
910(0)~910(E)‧‧‧邏輯程式化單元
410(F-0)~410(F-F)‧‧‧實體程式化單元
920‧‧‧區域
1101‧‧‧實體-邏輯映射資訊整理表格
1102、1201、1202‧‧‧邏輯-實體映射表
D(0)~D(E)、D1~D6‧‧‧資料
921~926‧‧‧實體-邏輯映射資訊
S1301、S1303、S1305、S1307‧‧‧資料重建方法的步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。 圖3是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。 圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。 圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。 圖8是根據一範例實施例所繪示的儲存在實體抹除單元中的實體-邏輯映射資訊及時間資訊的示意圖。 圖9是根據一範例實施例所繪示的對應一般寫入操作而儲存實體-邏輯映射資訊的示意圖。 圖10A是根據一範例實施例所繪示的對應垃圾收集操作而儲存實體-邏輯映射資訊的示意圖。 圖10B是根據另一範例實施例所繪示的對應垃圾收集操作而儲存實體-邏輯映射資訊的示意圖。 圖11是根據一範例實施例所繪示的建立邏輯-實體映射表的示意圖。 圖12A及12B是根據一範例實施例所繪示的比對使用者資料以更新邏輯-實體映射表的示意圖。 圖13是根據一範例實施例所繪示的資料重建方法的流程圖。
S1301、S1303、S1305、S1307‧‧‧資料重建方法的步驟

Claims (27)

  1. 一種資料重建方法,用於一記憶體儲存裝置,該記憶體儲存裝置具有一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體抹除單元,該資料重建方法包括: 讀取儲存於該可複寫式非揮發性記憶體模組中的多個實體-邏輯映射資訊以及對應於該些實體-邏輯映射資訊的多個時間資訊; 根據該些時間資訊排序該些實體-邏輯映射資訊; 根據已排序的該些實體-邏輯映射資訊建立多個邏輯-實體映射資訊以產生一邏輯-實體映射表;以及 將該邏輯-實體映射表回存至該記憶體儲存裝置的一緩衝記憶體中。
  2. 如申請專利範圍第1項所述的資料重建方法,其中將該邏輯-實體映射表回存至該記憶體儲存裝置的該緩衝記憶體中的步驟包括: 根據對應於一讀取指令的一最大讀取資料量計算一邏輯位址個數,並且根據該邏輯位址個數將該邏輯-實體映射表的多個邏輯-實體映射資訊分批寫入至該記憶體儲存裝置的該緩衝記憶體中。
  3. 如申請專利範圍第1項所述的資料重建方法,其中該時間資訊包括一寫入時間資訊及一整理時間資訊。
  4. 如申請專利範圍第3項所述的資料重建方法,其中該些實體-邏輯映射資訊包括一第一實體-邏輯映射資訊及一第二實體-邏輯映射資訊,其中根據該些時間資訊排序該些實體-邏輯映射資訊的步驟包括: 根據該些寫入時間資訊排序該些實體-邏輯映射資訊;以及 倘若該第一實體-邏輯映射資訊的一第一寫入時間資訊與該第二實體-邏輯映射資訊的一第二寫入時間資訊相同,根據該第一實體-邏輯映射資訊的一第一整理時間資訊與該第二實體-邏輯映射資訊的一第二整理時間資訊排序該第一實體-邏輯映射資訊及該第二實體-邏輯映射資訊。
  5. 如申請專利範圍第1項所述的資料重建方法,其中該些實體-邏輯映射資訊包括一第三實體-邏輯映射資訊及一第四實體-邏輯映射資訊,其中根據已排序的該些實體-邏輯映射資訊建立該些邏輯-實體映射資訊以產生該邏輯-實體映射表的步驟更包括: 倘若該第三實體-邏輯映射資訊及該第四實體-邏輯映射資訊包括相同的邏輯位址,並且該第四實體-邏輯映射資訊的時間資訊排序在該第三實體-邏輯映射資訊的時間資訊之後,根據該第四實體-邏輯映射資訊更新該邏輯-實體映射表。
  6. 如申請專利範圍第1項所述的資料重建方法,其中每一實體抹除單元具有多個實體程式化單元,該些實體程式化單元包括一第一實體程式化單元及一第二實體程式化單元,其中在產生該邏輯-實體映射表的步驟之後,更包括: 讀取該第一實體程式化單元的一第一資訊及一第一邏輯位址,其中該第一實體程式化單元所對應的一第五實體-邏輯映射資訊尚未儲存至該可複寫式非揮發性記憶體模組中; 根據該邏輯-實體映射表讀取該第一邏輯位址所映射的一第二實體程式化單元中的一第二資訊;以及 倘若該第一資訊與該第二資訊不相同,更新該邏輯-實體映射表中的該第一邏輯位址映射至該第一實體程式化單元。
  7. 如申請專利範圍第1項所述的資料重建方法,其中在讀取儲存於該可複寫式非揮發性記憶體模組中的該些實體-邏輯映射資訊之前,更包括: 將來自於該主機系統的一資料重建控制碼載入至該記憶體儲存裝置的該緩衝記憶體中,並且該資料重建控制碼會運行以根據該主機系統的至少一指令讀取儲存於該可複寫式非揮發性記憶體模組中的該些實體-邏輯映射資訊。
  8. 如申請專利範圍第1項所述的資料重建方法,其中該些實體-邏輯映射資訊是儲存在該可複寫式非揮發性記憶體模組的至少一實體抹除單元中的資料位元區,並且該些時間資訊是儲存在該至少一實體抹除單元中的冗餘位元區。
  9. 如申請專利範圍第1項所述的資料重建方法,更包括: 記錄該些實體-邏輯映射資訊在該緩衝記憶體中; 將記錄於該緩衝記憶體中的該些實體-邏輯映射資訊以及該些實體-邏輯映射資訊所對應的該些時間資訊儲存至該可複寫式非揮發性記憶體模組中。
  10. 一種記憶體控制電路單元,配置於一記憶體儲存裝置,用於控制該記憶體儲存裝置的一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體抹除單元,該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及 一記憶體管理電路,耦接至該主機介面與該記憶體介面, 其中,該記憶體管理電路讀取儲存於該可複寫式非揮發性記憶體模組中的多個實體-邏輯映射資訊以及對應於該些實體-邏輯映射資訊的多個時間資訊, 其中,該記憶體管理電路根據該些時間資訊排序該些實體-邏輯映射資訊, 其中,該記憶體管理電路根據已排序的該些實體-邏輯映射資訊建立多個邏輯-實體映射資訊以產生一邏輯-實體映射表, 其中,該記憶體管理電路將該邏輯-實體映射表載入至該記憶體儲存裝置的一緩衝記憶體中。
  11. 如申請專利範圍第10項所述的記憶體控制電路單元,其中該記憶體管理電路根據對應於一讀取指令的一最大讀取資料量計算一邏輯位址個數,並且根據該邏輯位址個數將該邏輯-實體映射表的多個邏輯-實體映射資訊分批載入至該記憶體儲存裝置的該緩衝記憶體中。
  12. 如申請專利範圍第10項所述的記憶體控制電路單元,其中該時間資訊包括一寫入時間資訊及一整理時間資訊。
  13. 如申請專利範圍第12項所述的記憶體控制電路單元,其中該些實體-邏輯映射資訊包括一第一實體-邏輯映射資訊及一第二實體-邏輯映射資訊, 其中該記憶體管理電路根據該些寫入時間資訊排序該些實體-邏輯映射資訊, 其中,倘若該第一實體-邏輯映射資訊的一第一寫入時間資訊與該第二實體-邏輯映射資訊的一第二寫入時間資訊相同,該記憶體管理電路根據該第一實體-邏輯映射資訊的一第一整理時間資訊與該第二實體-邏輯映射資訊的一第二整理時間資訊排序該第一實體-邏輯映射資訊及該第二實體-邏輯映射資訊。
  14. 如申請專利範圍第10項所述的記憶體控制電路單元,其中該些實體-邏輯映射資訊包括一第三實體-邏輯映射資訊及一第四實體-邏輯映射資訊, 其中倘若該第三實體-邏輯映射資訊及該第四實體-邏輯映射資訊包括相同的邏輯位址,並且該第四實體-邏輯映射資訊排序在該第三實體-邏輯映射資訊之後,該記憶體管理電路根據該第四實體-邏輯映射資訊更新該邏輯-實體映射表。
  15. 如申請專利範圍第10項所述的記憶體控制電路單元,其中每一實體抹除單元具有多個實體程式化單元,該些實體程式化單元包括一第一實體程式化單元及一第二實體程式化單元, 其中該記憶體管理電路讀取該第一實體程式化單元的一第一資訊及一第一邏輯位址,其中該第一實體程式化單元所對應的一第五實體-邏輯映射資訊尚未儲存至該可複寫式非揮發性記憶體模組中, 其中,該記憶體管理電路根據該邏輯-實體映射表讀取該第一邏輯位址所映射的一第二實體程式化單元中的一第二資訊, 其中,倘若該第一資訊與該第二資訊不相同,該記憶體管理電路更新該邏輯-實體映射表中的該第一邏輯位址映射至該第一實體程式化單元。
  16. 如申請專利範圍第10項所述的記憶體控制電路單元,其中該記憶體管理電路將來自於該主機系統的一資料重建控制碼載入至該記憶體儲存裝置的該緩衝記憶體中, 其中,該資料重建控制碼會運行以使該記憶體管理電路根據該主機系統的至少一指令讀取儲存於該可複寫式非揮發性記憶體模組中的該些實體-邏輯映射資訊。
  17. 如申請專利範圍第10項所述的記憶體控制電路單元,其中該些實體-邏輯映射資訊是儲存在該可複寫式非揮發性記憶體模組的至少一實體抹除單元中的資料位元區,並且該些時間資訊是儲存在該至少一實體抹除單元中的冗餘位元區。
  18. 如申請專利範圍第10項所述的記憶體控制電路單元,其中該記憶體管理電路記錄該些實體-邏輯映射資訊在該緩衝記憶體中,並且將記錄在該緩衝記憶體中的該些實體-邏輯映射資訊以及該些實體-邏輯映射資訊所對應的該些時間資訊儲存至該可複寫式非揮發性記憶體模組中。
  19. 一種資料重建系統,包括: 一主機系統,具有一資料重建單元; 一記憶體儲存裝置,包括: 一連接介面單元,耦接至該主機系統; 一可複寫式非揮發性記憶體模組,具有多個實體抹除單元;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中,該資料重建單元傳送至少一讀取指令至該記憶體儲存裝置,且該記憶體控制電路單元根據該至少一讀取指令讀取儲存於該可複寫式非揮發性記憶體模組中的多個實體-邏輯映射資訊以及對應於該些實體-邏輯映射資訊的多個時間資訊以回應於該至少一讀取指令, 其中,該資料重建單元根據該些時間資訊排序該些實體-邏輯映射資訊, 其中,該資料重建單元根據已排序的該些實體-邏輯映射資訊建立多個邏輯-實體映射資訊以產生一邏輯-實體映射表, 其中,該資料重建單元將該邏輯-實體映射表回存至該記憶體儲存裝置的一緩衝記憶體中。
  20. 如申請專利範圍第19項所述的資料重建系統,其中該資料重建單元根據對應於一讀取指令的一最大讀取資料量計算一邏輯位址個數,並且根據該邏輯位址個數將該邏輯-實體映射表的多個邏輯-實體映射資訊分批寫入至該記憶體儲存裝置的該緩衝記憶體中。
  21. 如申請專利範圍第19項所述的資料重建系統,其中該時間資訊包括一寫入時間資訊及一整理時間資訊。
  22. 如申請專利範圍第21項所述的資料重建系統,其中該些實體-邏輯映射資訊包括一第一實體-邏輯映射資訊及一第二實體-邏輯映射資訊, 其中該資料重建單元根據該些寫入時間資訊排序該些實體-邏輯映射資訊, 其中,倘若該第一實體-邏輯映射資訊的一第一寫入時間資訊與該第二實體-邏輯映射資訊的一第二寫入時間資訊相同,該資料重建單元根據該第一實體-邏輯映射資訊的一第一整理時間資訊與該第二實體-邏輯映射資訊的一第二整理時間資訊排序該第一實體-邏輯映射資訊及該第二實體-邏輯映射資訊。
  23. 如申請專利範圍第19項所述的資料重建系統,其中該些實體-邏輯映射資訊包括一第三實體-邏輯映射資訊及一第四實體-邏輯映射資訊, 其中倘若該第三實體-邏輯映射資訊及該第四實體-邏輯映射資訊包括相同的邏輯位址,並且該第四實體-邏輯映射資訊排序在該第三實體-邏輯映射資訊之後,該資料重建單元根據該第四實體-邏輯映射資訊更新該邏輯-實體映射表。
  24. 如申請專利範圍第19項所述的資料重建系統,其中每一實體抹除單元具有多個實體程式化單元,該些實體程式化單元包括一第一實體程式化單元及一第二實體程式化單元, 其中該資料重建單元傳送一第一讀取指令至該記憶體儲存裝置,且該記憶體控制電路單元根據該第一讀取指令讀取該第一實體程式化單元的一第一資訊及一第一邏輯位址以回應於該第一讀取指令,其中該第一實體程式化單元所對應的一第五實體-邏輯映射資訊尚未儲存至該可複寫式非揮發性記憶體模組中, 其中,該資料重建單元根據該第一邏輯位址及該邏輯-實體映射表傳送一第二讀取指令至該記憶體儲存裝置,且該記憶體控制電路單元根據該第二讀取指令讀取該第一邏輯位址所映射的一第二實體程式化單元中的一第二資訊以回應於該第二讀取指令, 其中,倘若該第一資訊與該第二資訊不相同,該資料重建單元更新該邏輯-實體映射表中的該第一邏輯位址映射至該第一實體程式化單元。
  25. 如申請專利範圍第19項所述的資料重建系統,其中該資料重建單元傳送一資料重建控制碼至該記憶體儲存裝置,且該記憶體控制電路單元將該資料重建控制碼載入至該記憶體儲存裝置的該緩衝記憶體中, 其中,該資料重建控制碼會運行以使該記憶體控制電路單元根據該資料重建單元的該至少一讀取指令讀取儲存於該可複寫式非揮發性記憶體模組中的該些實體-邏輯映射資訊。
  26. 如申請專利範圍第19項所述的資料重建系統,其中該該些實體-邏輯映射資訊是儲存在該可複寫式非揮發性記憶體模組的至少一實體抹除單元中的資料位元區,並且該些時間資訊是儲存在該至少一實體抹除單元中的冗餘位元區。
  27. 如申請專利範圍第19項所述的資料重建系統,其中該記憶體控制電路單元記錄該些實體-邏輯映射資訊在該緩衝記憶體中,並且將記錄在該緩衝記憶體中的該些實體-邏輯映射資訊以及該些實體-邏輯映射資訊所對應的該些時間資訊儲存至該可複寫式非揮發性記憶體模組中。
TW104136614A 2015-11-06 2015-11-06 資料重建方法與系統及其記憶體控制電路單元 TWI579696B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW104136614A TWI579696B (zh) 2015-11-06 2015-11-06 資料重建方法與系統及其記憶體控制電路單元
US14/996,214 US9940189B2 (en) 2015-11-06 2016-01-14 Method and system for data rebuilding and memory control circuit unit thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104136614A TWI579696B (zh) 2015-11-06 2015-11-06 資料重建方法與系統及其記憶體控制電路單元

Publications (2)

Publication Number Publication Date
TWI579696B TWI579696B (zh) 2017-04-21
TW201717020A true TW201717020A (zh) 2017-05-16

Family

ID=58663780

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104136614A TWI579696B (zh) 2015-11-06 2015-11-06 資料重建方法與系統及其記憶體控制電路單元

Country Status (2)

Country Link
US (1) US9940189B2 (zh)
TW (1) TWI579696B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581022A (zh) * 2020-04-30 2020-08-25 江苏芯盛智能科技有限公司 一种数据恢复方法及***

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102615593B1 (ko) * 2016-05-04 2023-12-21 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI639917B (zh) * 2017-04-25 2018-11-01 慧榮科技股份有限公司 資料儲存裝置及映射表重建方法
TWI641948B (zh) 2017-07-27 2018-11-21 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
CN109558271B (zh) * 2017-09-26 2023-02-24 深圳大心电子科技有限公司 数据备份方法、数据恢复方法以及存储控制器
TWI768336B (zh) * 2019-01-24 2022-06-21 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI696074B (zh) 2019-01-24 2020-06-11 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI705331B (zh) * 2019-06-24 2020-09-21 群聯電子股份有限公司 有效資料合併方法、記憶體控制電路單元與記憶體儲存裝置
KR20210128240A (ko) * 2020-04-16 2021-10-26 에스케이하이닉스 주식회사 컨트롤러 및 이의 동작 방법
CN111651124B (zh) * 2020-06-03 2023-07-04 深圳忆联信息***有限公司 Ssd映射表多核分区并行重建方法、装置、设备及介质
CN113360429B (zh) * 2021-06-21 2024-07-02 群联电子股份有限公司 数据重建方法、存储器存储装置及存储器控制电路单元
US11556467B1 (en) * 2021-07-13 2023-01-17 Micron Technology, Inc. Optimizing garbage collection that uses a logical-to-physical table search
CN115202933A (zh) * 2022-07-19 2022-10-18 合肥兆芯电子有限公司 映射表重建方法、存储器存储装置及存储器控制电路单元

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101346703B (zh) * 2005-12-21 2012-11-21 Nxp股份有限公司 具有可块擦除单元的非易失性存储器
US20080075019A1 (en) * 2006-09-27 2008-03-27 Petras Charles E Data Mapping and Sorting Method in Network Communication
US8185778B2 (en) * 2008-04-15 2012-05-22 SMART Storage Systems, Inc. Flash management using separate metadata storage
US8566505B2 (en) * 2008-04-15 2013-10-22 SMART Storage Systems, Inc. Flash management using sequential techniques
CN103106143B (zh) * 2011-11-11 2016-01-13 光宝科技股份有限公司 固态储存装置及其逻辑至实体对应表建立方法
US9519647B2 (en) * 2012-04-17 2016-12-13 Sandisk Technologies Llc Data expiry in a non-volatile device
TWI486767B (zh) * 2012-06-22 2015-06-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
US10509776B2 (en) * 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
CN103902406A (zh) * 2012-12-31 2014-07-02 杨威锋 高可靠性固态存储设备的映射表信息的保存和恢复技术
US9454474B2 (en) * 2013-03-05 2016-09-27 Western Digital Technologies, Inc. Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive
US9519575B2 (en) * 2013-04-25 2016-12-13 Sandisk Technologies Llc Conditional iteration for a non-volatile device
US9772781B2 (en) * 2013-11-27 2017-09-26 Ngd Systems, Inc. System and method for supporting atomic writes in a flash translation layer
US9626286B2 (en) * 2014-10-03 2017-04-18 Sandisk Technologies Llc Hardware and firmware paths for performing memory read processes

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581022A (zh) * 2020-04-30 2020-08-25 江苏芯盛智能科技有限公司 一种数据恢复方法及***
WO2021219122A1 (zh) * 2020-04-30 2021-11-04 江苏芯盛智能科技有限公司 一种数据恢复方法、***及存储介质

Also Published As

Publication number Publication date
US9940189B2 (en) 2018-04-10
US20170132069A1 (en) 2017-05-11
TWI579696B (zh) 2017-04-21

Similar Documents

Publication Publication Date Title
TWI579696B (zh) 資料重建方法與系統及其記憶體控制電路單元
TWI681295B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI557561B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
CN106708416B (zh) 数据重建方法与***及其存储器控制电路单元
CN109491588B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
TW201740265A (zh) 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置
TWI602061B (zh) 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元
TWI676176B (zh) 資料整併方法、記憶體儲存裝置及記憶體控制電路單元
TWI705331B (zh) 有效資料合併方法、記憶體控制電路單元與記憶體儲存裝置
CN110390985B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
TWI591640B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI641948B (zh) 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
TWI642059B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI629590B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN112051971B (zh) 数据整并方法、存储器存储装置及存储器控制电路单元
CN109273033B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
CN111737165B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
TWI688956B (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN110308876B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
CN111767005B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
TWI635495B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN113138720B (zh) 数据存储方法、存储器控制电路单元以及存储器存储装置
CN111610937A (zh) 数据写入方法、存储器存储装置及存储器控制电路单元
CN112445418B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
TWI741779B (zh) 資料整併方法、記憶體儲存裝置及記憶體控制電路單元