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

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

Info

Publication number
TW201603031A
TW201603031A TW103123835A TW103123835A TW201603031A TW 201603031 A TW201603031 A TW 201603031A TW 103123835 A TW103123835 A TW 103123835A TW 103123835 A TW103123835 A TW 103123835A TW 201603031 A TW201603031 A TW 201603031A
Authority
TW
Taiwan
Prior art keywords
data
unit
size
memory
error check
Prior art date
Application number
TW103123835A
Other languages
English (en)
Other versions
TWI540582B (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 TW103123835A priority Critical patent/TWI540582B/zh
Priority to US14/468,342 priority patent/US9274706B2/en
Publication of TW201603031A publication Critical patent/TW201603031A/zh
Application granted granted Critical
Publication of TWI540582B publication Critical patent/TWI540582B/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/0608Saving storage space on storage systems
    • 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/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/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
    • 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/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

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)

Abstract

本發明是有關一種資料管理方法,其包括:將每個實體程式化單元劃分為資料位元區與冗餘位元區;根據第一寫入指令與第一資料產生對應第一資料的第一資料管理資訊;判斷第一資料是否可壓縮;並產生對應第一資料的第一資料壓縮資訊。此資料管理方法更包括:倘若第一資料可壓縮時,壓縮第一資料以產生第一壓縮資料,將第一壓縮資料與對應第一資料的第一資料管理資訊程式化至該些實體程式化單元之中的第一實體程式化單元的第一資料位元區,並且將該第一資料壓縮資訊程式化至該第一實體程式化單元的第一冗餘位元區。

Description

資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
本發明是有關於一種資料管理方法以及使用此方法的記憶體控制電路單元與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
在快閃記憶體儲存裝置的控制電路支援壓縮功能(即,將主機系統所儲存的資料進行壓縮後再寫入至快閃記憶體的功能)的例子中,若將對應此已壓縮資料的資料管理資訊也一併儲存至儲存此壓縮資料的實體程式化單元的冗餘位元區中,會使得儲存 此壓縮資料的實體程式化單元的冗餘位元區的空間減少,造成可存放錯誤檢查與校正碼的空間減少,由此犧牲了錯誤校正能力。因此,如何有效地管理能夠壓縮資料的相關資訊,為此領域技術人員所關注的課題。
本發明提供一種資料管理方法以及使用此方法的記憶體控制電路單元與記憶體儲存裝置,其能夠有效地管理壓縮資料的資訊,以增加記憶體空間的利用效率。
本發明的一範例實施例提供一種用於可複寫式非揮發性記憶體模組的資料管理方法,其中此可複寫式非揮發性記憶體模組包含多個實體抹除單元並且多個邏輯單元以映射至少部分的此些實體抹除單元,且每一實體抹除單元具有多個實體程式化單元。上述資料管理方法包括:將每個實體程式化單元劃分為資料位元區與冗餘位元區;接收第一寫入指令以及對應第一寫入指令的第一資料,並且根據第一寫入指令與第一資料產生對應第一資料的第一資料管理資訊。上述資料管理方法還包括:判斷第一資料是否為可壓縮,並根據判斷結果產生對應第一資料的第一資料壓縮資訊。上述資料管理方法更包括:倘若第一資料為可壓縮時,壓縮第一資料以產生第一壓縮資料,將第一壓縮資料與對應第一資料的第一資料管理資訊程式化至此些實體程式化單元之中的第一實體程式化單元的第一資料位元區,並且將第一資料壓縮資訊 程式化至第一實體程式化單元的第一冗餘位元區;以及,倘若第一資料為不可壓縮時,將第一資料程式化至第一實體程式化單元的第一資料位元區,將第一資料壓縮資訊與第一資料管理資訊程式化至第一實體程式化單元的第一冗餘位元區。
在本發明的一範例實施例中,上述第一寫入指令指示將第一資料儲存至第一邏輯子單元,並且上述根據第一寫入指令與第一資料產生對應第一資料的第一資料管理資訊的步驟包括:將對應第一資料所產生的第一資料錯誤檢查與校正碼整合進第一資料管理資訊中,以及將記錄第一資料所對應的第一邏輯子單元的位址整合進第一資料管理資訊中。
在本發明的一範例實施例中,上述產生對應第一資料的第一資料壓縮資訊的步驟包括:整合指示第一資料是否被壓縮的資訊進第一資料壓縮資訊中,以及倘若第一資料為可壓縮時,整合對應第一資料的壓縮率進第一資料壓縮資訊中。
在本發明的一範例實施例中,上述資料管理方法包括:倘若第一資料為可壓縮時,壓縮第一資料成為第一過渡資料,並且判斷第一過渡資料的大小。上述資料管理方法也包括,倘若第一過渡資料的大小小於或等於第一預設壓縮長度,將第一過渡資料加入第一填補資料成為第一壓縮資料,以使第一壓縮資料的大小等於第一預設壓縮長度,並將第一壓縮資料與第一資料管理資訊劃分為第一錯誤檢查與校正框,其中第一錯誤檢查與校正框的大小等於第一錯誤檢查與校正框長度。上述資料管理方法亦包 括,倘若第一過渡資料的大小大於第一預設壓縮長度且小於第二預設壓縮長度,將第一過渡資料加入第二填補資料成為第一壓縮資料,以使第一壓縮資料的大小等於第二預設壓縮長度,並將第一壓縮資料與第一資料管理資訊劃分為第一錯誤檢查與校正框,其中第一錯誤檢查與校正框的大小等於第二錯誤檢查與校正框長度。上述資料管理方法還包括,倘若第一過渡資料的大小大於第二預設壓縮長度且小於第三預設壓縮長度,將第一過渡資料加入第三填補資料成為第一壓縮資料,以使第一壓縮資料的大小等於第三預設壓縮長度,並將第一壓縮資料與第一資料管理資訊劃分為第一錯誤檢查與校正框,其中第一錯誤檢查與校正框的大小等於第三錯誤檢查與校正框長度。上述資料管理方法另包括,倘若第一過渡資料的大小大於第三預設壓縮長度且小於第四預設壓縮長度,將第一過渡資料加入第四填補資料成為第一壓縮資料,以使第一壓縮資料的大小等於第四預設壓縮長度,並將第一壓縮資料與第一資料管理資訊劃分為第一錯誤檢查與校正框,其中第一錯誤檢查與校正框的大小等於第四錯誤檢查與校正框長度。上述資料管理方法更包括,將第一錯誤檢查與校正框程式化至第一資料位元區。
在本發明的一範例實施例中,第一邏輯子單元的大小與第一實體程式化單元的大小為傳輸單元大小,其中傳輸單元大小為4096位元組。此外,第一錯誤檢查與校正框長度的大小為第一實體程式化單元的大小的四分之一、第二錯誤檢查與校正框長度 的大小為第一實體程式化單元的大小的二分之一、第三錯誤檢查與校正框長度的大小為第一實體程式化單元的大小的四分之三,以及第四錯誤檢查與校正框長度的大小為第一實體程式化單元的大小。
在本發明的一範例實施例中,上述資料管理方法更包括:整合對應第一過渡資料的第一填補資料、第二填補資料、第三填補資料或第四填補資料的位址與大小的資訊進第一資料管理資訊中。
本發明的一範例實施例提供一種用於可複寫式非揮發性記憶體模組資料管理方法,其中可複寫式非揮發性記憶體模組包含多個實體抹除單元並且多個邏輯單元以映射至少部分的此些實體抹除單元,且每一實體抹除單元具有多個實體程式化單元。上述資料管理方法包括:將每個實體程式化單元至少劃分為資料位元區與冗餘位元區。上述資料管理方法包括:接收可壓縮的第一資料;將第一資料壓縮為第一壓縮資料,並產生對應第一資料的第一資料壓縮資訊,其中指示該第一資料是否被壓縮的資訊與對應該第一資料的一壓縮率被整合進該第一資料壓縮資訊中。上述資料管理方法也包括:將此些實體程式化單元之中的第一實體程式化單元的第一資料位元區劃分為第一使用者資料區與第一管理資訊區,並且將第一壓縮資料程式化至第一使用者資料區。上述資料管理方法更包括:將對應第一資料的第一資料管理資訊程式化至第一管理資訊區中,並且將第一資料壓縮資訊程式化至第一 實體程式化單元的第一冗餘位元區。
在本發明的一範例實施例中,上述資料管理方法更包括:接收不可壓縮的第二資料,以及將第二資料程式化至此些實體程式化單元之中的第二實體程式化單元的資料位元區。上述資料管理方法更包括:將對應第二資料的第二資料管理資訊與第二資料壓縮資訊程式化至第二實體程式化單元的冗餘位元區,其中指示第二資料為不可壓縮資料的資訊被整合進該第二資料壓縮資訊中。
本發明提供一種記憶體控制電路單元,用於控制可複寫式非揮發性記憶體模組。此記憶體控制電路單元包括:主機介面、記憶體介面、記憶體管理電路,與資料壓縮/解壓縮電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組包含多個實體抹除單元,多個邏輯單元以映射至少部分的此些實體抹除單元,且每一實體抹除單元具有多個實體程式化單元。記憶體管理電路耦接至主機介面與記憶體介面,並且配置多個邏輯單元以映射至少部分的此些實體抹除單元。資料壓縮/解壓縮電路耦接記憶體管理電路,並用以對資料進行壓縮或解壓縮操作。記憶體管理電路用以將每個實體程式化單元劃分為資料位元區與冗餘位元區。記憶體管理電路更用以接收第一寫入指令以及對應第一寫入指令的第一資料,並且根據第一寫入指令與第一資料產生對應第一資料的第一資料管理資訊。以及,上述記憶體管理電路更用以判斷第 一資料是否為可壓縮,並根據判斷結果產生對應第一資料的第一資料壓縮資訊。倘若第一資料為可壓縮時,記憶體管理電路更用以指示資料壓縮/解壓縮電路壓縮第一資料以產生第一壓縮資料,並且記憶體管理電路更用以下達指令序列至可複寫式非揮發性記憶體模組以將第一壓縮資料與對應第一資料的第一資料管理資訊程式化至此些實體程式化單元之中的第一實體程式化單元的第一資料位元區,並且將第一資料壓縮資訊程式化至第一實體程式化單元的第一冗餘位元區。倘若第一資料為不可壓縮時,記憶體管理電路更用以下達指令序列至可複寫式非揮發性記憶體模組以將第一資料程式化至第一實體程式化單元的第一資料位元區,並且將第一資料壓縮資訊與第一資料管理資訊程式化至第一實體程式化單元的第一冗餘位元區。
在本發明的一範例實施例中,第一寫入指令指示將第一資料儲存至第一邏輯子單元,並且在上述根據第一寫入指令與第一資料產生對應第一資料的第一資料管理資訊的運作中,記憶體管理電路將對應第一資料所產生的第一資料錯誤檢查與校正碼整合進第一資料管理資訊中,並且將第一資料所對應的第一邏輯子單元的位址整合進第一資料管理資訊中。
在本發明的一範例實施例中,在上述產生對應第一資料的第一資料壓縮資訊的運作包括:記憶體管理電路整合指示第一資料是否被壓縮的資訊進第一資料壓縮資訊中。以及倘若第一資料為可壓縮時,記憶體管理電路更用以整合對應第一資料的壓縮 率進第一資料壓縮資訊中。
在本發明的一範例實施例中,倘若第一資料為可壓縮時,資料壓縮/解壓縮電路壓縮第一資料成為第一過渡資料,並且記憶體管理電路更用以判斷第一過渡資料的大小。倘若第一過渡資料的大小小於或等於第一預設壓縮長度,記憶體管理電路更用以將第一過渡資料加入第一填補資料成為第一壓縮資料,以使第一壓縮資料的大小等於第一預設壓縮長度,並將第一壓縮資料與第一資料管理資訊劃分為第一錯誤檢查與校正框,其中第一錯誤檢查與校正框的大小等於一第一錯誤檢查與校正框長度。以及,倘若第一過渡資料的大小大於第一預設壓縮長度且小於第二預設壓縮長度,記憶體管理電路更用以將第一過渡資料加入第二填補資料成為第一壓縮資料,以使第一壓縮資料的大小等於第二預設壓縮長度,並將第一壓縮資料與第一資料管理資訊劃分為第一錯誤檢查與校正框,其中第一錯誤檢查與校正框的大小等於一第二錯誤檢查與校正框長度。以及,倘若第一過渡資料的大小大於第二預設壓縮長度且小於第三預設壓縮長度,記憶體管理電路更用以將第一過渡資料加入第三填補資料成為第一壓縮資料,以使第一壓縮資料的大小等於第三預設壓縮長度,並將第一壓縮資料與第一資料管理資訊劃分為第一錯誤檢查與校正框,其中第一錯誤檢查與校正框的大小等於第三錯誤檢查與校正框長度。以及,倘若第一過渡資料的大小大於第三預設壓縮長度且小於第四預設壓縮長度,記憶體管理電路更用以將第一過渡資料加入第四填補資 料成為第一壓縮資料,以使第一壓縮資料的大小等於第四預設壓縮長度,並將第一壓縮資料與第一資料管理資訊劃分為第一錯誤檢查與校正框,其中第一錯誤檢查與校正框的大小等於第四錯誤檢查與校正框長度。再者,記憶體管理電路更用以下達指令序列至可複寫式非揮發性記憶體模組以將第一錯誤檢查與校正框程式化至第一資料位元區。
在本發明的一範例實施例中,上述第一邏輯子單元的大小與第一實體程式化單元的大小為傳輸單元大小,其中傳輸單元大小為4096位元組。並且,第一錯誤檢查與校正框長度的大小為第一實體程式化單元的大小的四分之一、第二錯誤檢查與校正框長度的大小為第一實體程式化單元的大小的二分之一、第三錯誤檢查與校正框長度的大小為第一實體程式化單元的大小的四分之三,以及第四錯誤檢查與校正框長度的大小為第一實體程式化單元的大小。
在本發明的一範例實施例中,記憶體管理電路更用以整合對應第一過渡資料的第一填補資料、第二填補資料、第三填補資料或第四填補資料的位址與大小的資訊進第一資料管理資訊中。
本發明的一範例實施例提供一種用於控制可複寫式非揮發性記憶體模組的記憶體控制電路單元。記憶體控制電路單元包括:主機介面、記憶體介面、記憶體管理電路與資料壓縮/解壓縮電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可 複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組包含多個實體抹除單元,多個邏輯單元以映射至少部分的此些實體抹除單元,且每一實體抹除單元具有多個實體程式化單元。記憶體管理電路耦接至主機介面與記憶體介面,並且配置多個邏輯單元以映射至少部分的此些實體抹除單元。資料壓縮/解壓縮電路耦接記憶體管理電路,並用以對資料進行壓縮或解壓縮操作,其中記憶體管理電路用以將每個實體程式化單元至少劃分為資料位元區與冗餘位元區,其中記憶體管理電路用以接收第一資料,其中第一資料為可壓縮資料,並且指示資料壓縮/解壓縮電路將第一資料壓縮為第一壓縮資料。此外,記憶體管理電路產生對應第一資料的第一資料壓縮資訊,其中指示該第一資料是否被壓縮的資訊與對應該第一資料的一壓縮率被整合進該第一資料壓縮資訊中。再者,記憶體管理電路更用以將此些實體程式化單元之中的第一實體程式化單元的第一資料位元區劃分為第一使用者資料區與第一管理資訊區,並且下達指令序列至可複寫式非揮發性記憶體模組以將第一壓縮資料程式化至第一使用者資料區、將對應第一資料的第一資料管理資訊程式化至第一管理資訊區中,並且將第一資料壓縮資訊程式化至第一實體程式化單元的第一冗餘位元區。
在本發明的一範例實施例中,上記憶體管理電路更用以接收第二資料,其中第二資料為不可壓縮資料。此外,記憶體管理電路用以下達指令序列至可複寫式非揮發性記憶體模組以將第 二資料程式化至此些實體程式化單元之中的第二實體程式化單元的資料位元區,並且將對應第二資料的第二資料管理資訊與第二資料壓縮資訊程式化至第二實體程式化單元的冗餘位元區,其中指示第二資料為不可壓縮資料的資訊被整合進該第二資料壓縮資訊中。
本發明的一範例實施例提供一種記憶體儲存裝置,其包括:連接介面單元、可複寫式非揮發性記憶體模組與記憶體控制電路單元。連接介面單元用以耦接至一主機系統。可複寫式非揮發性記憶體模組具有多個實體抹除單元並且多個邏輯單元以映射至少部分的此些實體抹除單元,其中每一實體抹除單元具有多個實體程式化單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組,並且配置多個邏輯單元以映射至少部分的此些實體抹除單元。記憶體控制電路單元用以將每個實體程式化單元劃分為資料位元區與冗餘位元區。此外,記憶體控制電路單元更用以接收第一寫入指令以及對應第一寫入指令的第一資料,並且根據第一寫入指令與第一資料產生對應第一資料的第一資料管理資訊。再者,記憶體控制電路單元更用以判斷第一資料是否為可壓縮,並根據判斷結果產生對應第一資料的第一資料壓縮資訊。倘若第一資料為可壓縮時,記憶體控制電路單元更用以壓縮第一資料以產生第一壓縮資料,將第一壓縮資料與對應第一資料的第一資料管理資訊程式化至此些實體程式化單元之中的第一實體程式化單元的第一資料位元區,並且將第一資料壓縮資 訊程式化至第一實體程式化單元的第一冗餘位元區。以及,倘若第一資料為不可壓縮時,記憶體控制電路單元更用以將第一資料程式化至第一實體程式化單元的第一資料位元區,並且將第一資料壓縮資訊與第一資料管理資訊程式化至第一實體程式化單元的第一冗餘位元區。
在本發明的一範例實施例中,第一寫入指令指示將第一資料儲存至第一邏輯子單元,並且在上述根據第一寫入指令與第一資料產生對應第一資料的第一資料管理資訊的運作中,記憶體控制電路單元用以將對應第一資料所產生的第一資料錯誤檢查與校正碼整合進第一資料管理資訊中。此外,記憶體控制電路單元更用以將第一資料所對應的第一邏輯子單元的位址整合進第一資料管理資訊中。
在本發明的一範例實施例中,上述產生對應第一資料的第一資料壓縮資訊的運作包括:記憶體控制電路單元更用以整合第一資料是否被壓縮的資訊進第一資料壓縮資訊中。倘若第一資料可壓縮時,記憶體控制電路單元更用以整合對應第一資料的壓縮率進第一資料壓縮資訊中。
在本發明的一範例實施例中,倘若第一資料為可壓縮時,記憶體控制電路單元壓縮第一資料成為第一過渡資料,其中記憶體控制電路單元更用以判斷第一過渡資料的大小。倘若第一過渡資料的大小小於或等於第一預設壓縮長度,記憶體控制電路單元更用以將第一過渡資料加入第一填補資料成為第一壓縮資 料,以使第一壓縮資料的大小等於第一預設壓縮長度,並將第一壓縮資料與第一資料管理資訊劃分為第一錯誤檢查與校正框,其中第一錯誤檢查與校正框的大小等於第一錯誤檢查與校正框長度。以及,倘若第一過渡資料的大小大於第一預設壓縮長度且小於第二預設壓縮長度,記憶體控制電路單元更用以將第一過渡資料加入第二填補資料成為第一壓縮資料,以使第一壓縮資料的大小等於第二預設壓縮長度,並將第一壓縮資料與第一資料管理資訊劃分為第一錯誤檢查與校正框,其中第一錯誤檢查與校正框的大小等於第二錯誤檢查與校正框長度。以及,倘若第一過渡資料的大小大於第二預設壓縮長度且小於第三預設壓縮長度,記憶體控制電路單元更用以將第一過渡資料加入第三填補資料成為第一壓縮資料,以使第一壓縮資料的大小等於第三預設壓縮長度,並將第一壓縮資料與第一資料管理資訊劃分為第一錯誤檢查與校正框,其中第一錯誤檢查與校正框的大小等於第三錯誤檢查與校正框長度。以及,倘若第一過渡資料的大小大於第三預設壓縮長度且小於第四預設壓縮長度,記憶體控制電路單元更用以將第一過渡資料加入第四填補資料成為第一壓縮資料,以使第一壓縮資料的大小等於第四預設壓縮長度,並將第一壓縮資料與第一資料管理資訊劃分為第一錯誤檢查與校正框,其中第一錯誤檢查與校正框的大小等於第四錯誤檢查與校正框長度。再者,記憶體控制電路單元更用以將第一錯誤檢查與校正框程式化至第一資料位元區。
在本發明的一範例實施例中,第一邏輯子單元的大小與第一實體程式化單元的大小為傳輸單元大小,其中傳輸單元大小為4096位元組。並且,第一錯誤檢查與校正框長度的大小為第一實體程式化單元的大小的四分之一、第二錯誤檢查與校正框長度的大小為第一實體程式化單元的大小的二分之一、第三錯誤檢查與校正框長度的大小為第一實體程式化單元的大小的四分之三,以及第四錯誤檢查與校正框長度的大小為第一實體程式化單元的大小。
在本發明的一範例實施例中,記憶體控制電路單元更用以整合對應第一過渡資料的第一填補資料、第二填補資料、第三填補資料或第四填補資料的位址與大小的資訊進第一資料管理資訊中。
本發明提供一種記憶體儲存裝置,其包括:連接介面單元、可複寫式非揮發性記憶體模組與記憶體控制電路單元。連接介面單元耦接至主機系統。可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組具有多個實體抹除單元,多個邏輯單元以映射至少部分的此些實體抹除單元,且每一實體抹除單元具有多個實體程式化單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組,並且配置多個邏輯單元以映射至少部分的此些實體抹除單元。記憶體控制電路單元用以將每個實體程式化單元劃分為資料位元區與冗餘位元區。此外,記憶體控制電路單元更用以接收第一資料,其中第一資料為可壓縮 資料。另外,記憶體控制電路單元更用以將第一資料壓縮為第一壓縮資料,並且產生對應第一資料的第一資料壓縮資訊,其中指示該第一資料是否被壓縮的資訊與對應該第一資料的一壓縮率被整合進該第一資料壓縮資訊中。再者,記憶體控制電路單元更用以將此些實體程式化單元之中的第一實體程式化單元的第一資料位元區劃分為第一使用者資料區與第一管理資訊區,將第一壓縮資料程式化至第一使用者資料區,將對應第一資料的第一資料管理資訊程式化至第一管理資訊區中,並且將第一資料壓縮資訊程式化至第一實體程式化單元的第一冗餘位元區。
在本發明的一範例實施例中,記憶體控制電路單元更用以接收第二資料,其中第二資料為不可壓縮資料。此外,記憶體控制電路單元用以將第二資料程式化至此些實體程式化單元之中的第二實體程式化單元的資料位元區,並且將對應第二資料的第二資料管理資訊與第二資料壓縮資訊程式化至第二實體程式化單元的冗餘位元區,其中指示第二資料為不可壓縮資料的資訊被整合進該第二資料壓縮資訊中。
基於上述,本發明可以使對應壓縮資料的資料管理資訊可以與其所對應的壓縮資料一同儲存在資料位元區中,不會去佔用到冗餘位元區的空間。如此一來,可以在一個實體程式化單元儲存多筆壓縮資料的時候,還可以使實體程式化單元的冗餘位元區可以保留空間以存放其他資訊,進而增進記憶體儲存裝置的空間使用效率並且有效地管理能夠壓縮資料的相關資訊。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接介面單元
104‧‧‧記憶體控制電路單元
106‧‧‧可複寫式非揮發性記憶體模組
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
208‧‧‧緩衝記憶體
210‧‧‧電源管理電路
212‧‧‧錯誤檢查與校正電路
214‧‧‧資料壓縮/解壓縮電路
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧資料區
504‧‧‧閒置區
506‧‧‧系統區
508‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
RD1‧‧‧第一資料
TD1‧‧‧第一過渡資料
PD1‧‧‧第一填補資料
CD1‧‧‧第一壓縮資料
CD2‧‧‧第二壓縮資料
CD4‧‧‧第四壓縮資料
CD5‧‧‧第五壓縮資料
D3‧‧‧第三非壓縮資料
D6‧‧‧第六非壓縮資料
D7‧‧‧第七非壓縮資料
ECCF1‧‧‧第一錯誤檢查與校正框
ECCF2‧‧‧第二錯誤檢查與校正框
ECCF3‧‧‧第三錯誤檢查與校正框
ECCF4‧‧‧第四錯誤檢查與校正框
ECCF5‧‧‧第五錯誤檢查與校正框
ECCF6‧‧‧第六錯誤檢查與校正框
ECCF7‧‧‧第七錯誤檢查與校正框
ECCF8‧‧‧第八錯誤檢查與校正框
ECCF9‧‧‧第九錯誤檢查與校正框
DBA1‧‧‧第一資料位元區
DBA2‧‧‧第二資料位元區
DBA3‧‧‧第三資料位元區
DBA4‧‧‧第四資料位元區
DBA5‧‧‧第五資料位元區
DMI1‧‧‧第一資料管理資訊
DMI2‧‧‧第二資料管理資訊
DMI3‧‧‧第三資料管理資訊
DMI4‧‧‧第四資料管理資訊
DMI5‧‧‧第五資料管理資訊
DMI6‧‧‧第六資料管理資訊
DMI7‧‧‧第七資料管理資訊
SBA1‧‧‧第一冗餘位元區
SBA2‧‧‧第二冗餘位元區
SBA3‧‧‧第三冗餘位元區
SBA4‧‧‧第四冗餘位元區
SBA5‧‧‧第五冗餘位元區
UDA1‧‧‧第一使用者資料區
UDA2‧‧‧第二使用者資料區
MIA1‧‧‧第一管理資訊區
MIA2‧‧‧第二管理資訊區
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
圖6是根據本發明範例實施例所繪示之寫入資料至實體頁面的示意圖。
圖7是根據本發明範例實施例所繪示之管理實體區塊的範例示意圖。
圖8是根據本發明範例實施例所繪示將填補資料與資料管理資訊附加至過渡資料的示意圖。
圖9是根據本發明範例實施例所繪示儲存壓縮資料與非壓縮資料於多個實體程式化單元的例子。
圖10是根據本發明範例實施例所繪示儲存壓縮資料與非壓縮資料於多個實體程式化單元的另一範例。
圖11為根據本發明第一範例實施例,所繪示的資料管理方法流程圖。
圖12A~F是根據本發明範例實施例所繪示儲存壓縮資料於實體程式化單元的示意圖。
圖13是根據本發明範例實施例所繪示儲存非壓縮資料於實體程式化單元的示意圖。
圖14為根據本發明第二範例實施例,所繪示的資料管理方法流程圖。
[第一範例實施例]
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖2的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明範例實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件電性連接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體模組儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來做說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體模組儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖3所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接電性連接於主機系統的基板上。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置100包括連接介面單元102、記憶體控制電路單元104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接介面單元102是相容於序列先 進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元102亦可以是符合並列先進附件(Parallel 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)介面標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元可與記憶體控制電路單元封裝在一個晶片中,或佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令對可複寫式非揮發性記憶體模組106下達指令序列以進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是電性連接至記憶體控制電路單元104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106具有實體抹除單元410(0)~ 410(N)。例如,實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,例如本發明的範例實施例中,每一個實體抹除單元包含258個實體程式化單元,而其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區(Data bits area,DBA)與冗餘位元區(Spare bits area,SBA)。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊、壓縮資訊或是錯誤檢查與校正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區的大小為4096位元組(bytes)並且包含4個實體存取位址,且一個實體存取位址的大小為102位元組。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組,以下稱MLC NAND型快閃記憶體模組),然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、三階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
在本範例實施例中,MLC NAND型快閃記憶體模組的實體抹除單元具有多個實體程式化單元,而此些實體程式化單元,由於一個記憶胞中可儲存2個位元資料,因此還包括下實體程式化單元(Lower programming unit)以及上實體程式化單元(Higher programming unit)。而一般使用MLC NAND型快閃記憶體模組儲存資料時,會同時使用多層記憶胞模式來程式化下實體程式化單元的其中之一與上實體程式化單元的其中之一以將資料寫入記憶胞中。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元104包括記憶體管理電路202、主機介面204、記憶體介面206、緩衝記憶體208、電源 管理電路210、錯誤檢查與校正電路212與資料壓縮/解壓縮電路214。
記憶體管理電路202用以控制記憶體控制電路單元104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202 的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是電性連接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是電性連接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準、UHS-II介面標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是電性連接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制電路單元104還包括緩衝記憶體208、電源管理電路210與錯誤檢查與校正電路212。
緩衝記憶體208是電性連接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
電源管理電路210是電性連接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路212是電性連接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路212會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路212會依據此錯誤檢查與校正碼對 所讀取的資料執行錯誤檢查與校正程序。
資料壓縮/解壓縮電路214是耦接至記憶體管理電路202。在此,資料壓縮/解壓縮電路214用以壓縮欲寫入至可複寫式非揮發性記憶體模組106的資料並且用以解壓縮從可複寫式非揮發性記憶體模組106中所讀取之資料。例如,資料壓縮/解壓縮電路214包含壓縮器(compressor)及解壓縮器(decompressor)。壓縮器用以找出原始資料(original data)中存在的資料累贅(data redundancy)、移除所找出之累贅,將剩餘的必要資料編碼並且輸出編碼結果,即,壓縮資料(compressed data)。而,解壓縮器用以將讀入的壓縮資料依據既定的步驟解碼並送出解碼結果,即,解壓縮資料(decompressed data)。在本範例實施例中,資料壓縮/解壓縮電路214是使用無失真壓縮演算法來壓縮資料,以使壓縮後之資料能夠被還原。
圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
請參照圖6,記憶體控制電路單元104(或記憶體管理電路202)會將實體抹除單元410(0)~410-(N)邏輯地分組為資料區502、閒置區504、系統區506與取代區508。
邏輯上屬於資料區502與閒置區504的實體抹除單元是用以儲存來自於主機系統1000的資料。具體來說,資料區502的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區504的實體抹除單元是用以替換資料區502的實體抹除單元。也就是 說,當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路202會從閒置區504中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區502的實體抹除單元。
邏輯上屬於系統區506的實體抹除單元是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區508中的實體抹除單元是用於壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區508中仍存有正常之實體抹除單元並且資料區502的實體抹除單元損壞時,記憶體管理電路202會從取代區508中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,資料區502、閒置區504、系統區506與取代區508之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至資料區502、閒置區504、系統區506與取代區508的分組關係會動態地變動。例如,當閒置區504中的實體抹除單元損壞而被取代區508的實體抹除單元取代時,則原本取代區508的實體抹除單元會被關聯至閒置區504。
請參照圖7,記憶體控制電路單元104(或記憶體管理電路202)會配置邏輯單元LBA(0)~LBA(H)以映射資料區502的實體抹 除單元,其中每一邏輯單元具有多個邏輯子單元以映射對應之實體抹除單元的實體程式化單元。並且,當主機系統100欲寫入資料至邏輯單元或更新儲存於邏輯單元中的資料時,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個實體抹除單元來寫入資料,以輪替資料區502的實體抹除單元。在本範例實施例中,邏輯子單元可以是邏輯頁面或邏輯扇區。在本範例實施例中,邏輯子單元為邏輯頁面,大小為4仟位元組(kilobytes,K bytes),與實體程式化單元的大小相同。
為了識別每個邏輯單元的資料被儲存在那個實體抹除單元,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會記錄邏輯單元與實體抹除單元之間的映射。並且,當主機系統1000欲在邏輯子單元中存取資料時,記憶體控制電路單元104(或記憶體管理電路202)會確認此邏輯子單元所屬的邏輯單元,並且對可複寫式非揮發性記憶體模組106下達對應的指令序列以在此邏輯單元所映射的實體抹除單元中來存取資料。例如,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會在可複寫式非揮發性記憶體模組106中儲存邏輯轉實體位址映射表來記錄每一邏輯單元所映射的實體抹除單元,並且當欲存取資料時記憶體控制電路單元104(或記憶體管理電路202)會將邏輯轉實體位址映射表載入至緩衝記憶體208來維護。
值得一提的是,由於緩衝記憶體208的容量有限無法儲存記錄所有邏輯單元之映射關係的映射表,因此,在本範例實施 例中,記憶體控制電路單元104(或記憶體管理電路202)會將邏輯單元LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯轉實體位址映射表。特別是,當記憶體控制電路單元104(或記憶體管理電路202)欲更新某個邏輯單元的映射時,對應此邏輯單元所屬之邏輯區域的邏輯轉實體位址映射表會被載入至緩衝記憶體208來被更新。
如上所述,在本範例實施例中,記憶體儲存裝置100的可複寫式非揮發性記憶體模組106是以實體程式化單元為基礎來進行管理,因此,在執行寫入指令時,不管目前資料是要寫入至那個邏輯單元的邏輯子單元,記憶體控制電路單元104(或記憶體管理電路202)皆會以一個實體程式化單元接續一個實體程式化單元的方式來寫入資料。具體來說,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個空的實體抹除單元作為目前使用之實體抹除單元來寫入資料。並且,當此目前使用之實體抹除單元已被寫滿時,記憶體控制電路單元104(或記憶體管理電路202)會再從閒置區504中提取另一個空的實體抹除單元作為目前使用之實體抹除單元,以繼續寫入對應來自於主機系統1000之寫入指令的資料。
在本範例實施例中,如上所述,在記憶體儲存裝置100的錯誤檢查與校正電路212會被配置來驗證可複寫式非揮發性記憶體模組106中所儲存的資料是否正確。然而,在執行錯誤校正程序時,無論是編碼或解碼步驟,錯誤檢查與校正電路212都是 需要清楚知道所要保護的資料長度為何,如此才能計算出正確的特徵碼,以檢查出正確的錯誤位置。在本範例實施例中,當記憶體控制電路單元104(或記憶體管理電路202)接收到資料時,記憶體控制電路單元104(或記憶體管理電路202)會先將資料分割為至少一個碼框(Frame),之後錯誤檢查與校正電路212再分別對每個碼框的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC)。接著,記憶體控制電路單元104(或記憶體管理電路202)會將每個碼框的資料與所對應的錯誤檢查與校正碼劃分為一個錯誤檢查與校正框,並且將資料以錯誤檢查與校正框為單位來寫入至可複寫式非揮發性記憶體模組106。在此,錯誤檢查與校正框的大小是根據傳輸單位的大小來分割,且此傳輸單位的大小是依據可複寫式非揮發性記憶體模組106的規格書來決定。也就是說,每個傳輸單位須保護(protect)多少個位元(bit)。例如,傳輸單位為4仟位元組,保護24個位元。當錯誤檢查與校正碼框設定為4仟位元組時,記憶體控制電路單元104(或記憶體管理電路202)會將資料切割為每單位為小於4仟位元組的碼框。而錯誤檢查與校正電路212則會針對每個碼框的資料進行錯誤校正編碼,以使產生的錯誤檢查與校正碼與每個碼框的大小總和為4仟位元組。
但必須了解的是,本發明不限於此,在另一範例實施例中,錯誤檢查與校正框的大小亦可以是1仟位元組、2仟位元組或3仟位元組等等。值得一提的是,每個實體程式化單元的大小會儲 存至少一個錯誤檢查與校正框,以使儲存在實體程式化單元的資料,以錯誤檢查與校正框的大小為單位,可以受到錯誤檢查與校正電路212的保護。
例如,在本範例實施例中,錯誤檢查與校正電路212的最大保護能力,為24個位元,故當錯誤檢查與校正框所發生的錯誤位元數目大於24(例如,25)時,錯誤檢查與校正電路212將無法校正於錯誤檢查與校正框內的錯誤資料,導致儲存於此錯誤檢查與校正框的資料不能正常讀取,成為不能恢復的損毀資料。當此狀況發生時,也代表具有此損毀資料的實體抹除單元已經過於老化而不堪使用。故,記憶體控制電路單元104(或記憶體管理電路202)會將錯誤位元數目超過錯誤檢查與校正電路212最大保護能力的實體程式化單元標記成不良實體程式化單元,並記錄於一個不良實體程式化單元分佈表中。
圖8是根據本發明範例實施例所繪示將填補資料與管理資訊附加至過渡資料的示意圖。
請參照圖8,舉例來說,在本範例實施例中,當記憶體控制電路單元104(或記憶體管理電路202)欲將資料長度為4仟位元組的第一資料RD1寫入至實體程式化單元時,資料壓縮/解壓縮電路214會掃描第一資料RD1並測試第一資料RD1是否可以被壓縮。倘若第一資料RD1可以被壓縮時,資料壓縮/解壓縮電路214會在掃描並測試第一資料RD1之後,得到第一資料RD1的資料態樣(pattern),接著資料壓縮/解壓縮電路214會使用適合第一資料 RD1的資料態樣的壓縮方法和壓縮率來對第一資料RD1進行壓縮操作以輸出第一過渡資料(First Transition Data)TD1。值得一提的是,在本範例實施例中,在對第一資料RD1壓縮之前,記憶體控制電路單元104(或記憶體管理電路202)會指示錯誤檢查與校正電路212對第一資料RD1產生對應第一資料RD1的第一錯誤檢查與校正碼,並將第一錯誤檢查與校正碼儲存至對應第一資料RD1的第一資料管理資訊(Data Management Information)DMI1中。此外,在進行壓縮操作的時候,資料壓縮/解壓縮電路214會使用無失真壓縮演算法來壓縮資料,以使之後解壓後的資料可以完整還原。必須了解的是,本發明不限於此壓縮演算法。在壓縮第一資料RD1之後,記憶體控制電路單元104(或記憶體管理電路202)會將對第一資料RD1進行壓縮操作所使用的壓縮方式和壓縮率等等相關的資訊,記錄在第一資料壓縮資訊中,其中此第一資料壓縮資訊也會記錄第一資料RD1是否有被壓縮的資訊。
然而,不同之寫入資料經過壓縮後所產生之壓縮資料的長度可能會不同。為了方便資料的管理,資料壓縮/解壓縮電路214會以預設壓縮長度來輸出所產生的壓縮資料。也就是說,所產生的壓縮資料的長度是等於預設壓縮長度。值得一提的是,在本範例實施例中,會使用不同的預設壓縮長度來對應壓縮後的資料。
具體來說,假設當第一資料壓縮後的長度介於1~1016位元組之間時,資料壓縮/解壓縮電路214會以一筆填補資料(Padding Data,PD)來附加在所產生的第一過渡資料TD1之後,如 圖8中所繪示的第一填補資料PD1,以產生第一壓縮資料CD1,其中第一壓縮資料CD1的長度等於第一預設壓縮長度(即,1016位元組)。當第一資料壓縮後的長度介於1017~2040位元組之間時,資料壓縮/解壓縮電路214會以一筆填補資料來附加在所產生的第一過渡資料TD1之後,以產生第一壓縮資料CD1,其中第一壓縮資料CD1的長度等於第二預設壓縮長度(即,2040位元組)。當第一資料壓縮後的長度介於2041~3064位元組之間時,資料壓縮/解壓縮電路214會以一筆填補資料來附加在所產生的第一過渡資料TD1之後,以產生第一壓縮資料CD1,其中第一壓縮資料CD1的長度等於第三預設壓縮長度(即,3064位元組)。當第一資料壓縮後的長度介於3065~4088位元組之間時,資料壓縮/解壓縮電路214會以一筆填補資料來附加在所產生的第一過渡資料TD1之後,以產生第一壓縮資料CD1,其中第一壓縮資料CD1的長度等於第四預設壓縮長度(即,4088位元組)。
接著,記憶體控制電路單元104(或記憶體管理電路202)會加入一個對應第一資料RD1的資料管理資訊(以下稱第一資料管理資訊DMI1),於第一壓縮資料CD1之後。例如,第一資料管理資訊DMI1的大小為8位元組。接著,記憶體控制電路單元104(或記憶體管理電路202)會將第一壓縮資料CD1與第一資料管理資訊DMI1整合為第一錯誤檢查與校正框ECCF1。
在本範例實施例中,上述第一資料錯誤校正碼框ECCF1的大小是依據第一壓縮資料CD1而定。舉例來說,若是第一壓縮 資料CD1的大小為第一預設壓縮長度(即,1016位元組)時,則所產生的第一錯誤檢查與校正碼框ECCF1的大小為第一錯誤檢查與校正碼框長度的大小,也就是1024位元組。若第一壓縮資料CD1的大小為第二預設壓縮長度(即,2040位元組)時,則所產生的第一錯誤檢查與校正碼框ECCF1的大小為第二錯誤檢查與校正碼框長度的大小,也就是2048位元組。若第一壓縮資料CD1的大小為第三預設壓縮長度(即,3064位元組)時,則所產生的第一錯誤檢查與校正碼框ECCF1的大小為第三錯誤檢查與校正碼框長度的大小,也就是3072位元組。若第一壓縮資料CD1的大小為第四預設壓縮長度(即,4088位元組)時,則所產生的第一錯誤檢查與校正碼框ECCF1的大小為第四錯誤檢查與校正碼框長度的大小,也就是4096位元組。值得一提的是,上述的預設壓縮長度以及錯誤校正碼框長度的大小設定僅為說明之用,不用於限制本發明。
請參照圖8,舉例來說,當記憶體控制電路單元104(或記憶體管理電路202)欲將資料長度為4仟位元組的第一資料RD1寫入至所提取的第一實體程式化單元時,資料壓縮/解壓縮電路214會根據第一資料RD1的資料態樣來決定可否壓縮或如何壓縮,並且在壓縮第一資料RD1之前,先對第一資料RD1產生第一錯誤檢查與校正碼,接著儲存第一錯誤檢查與校正碼於對應第一資料RD1的第一資料管理資訊DMI1中。接著,資料壓縮/解壓縮電路214會將第一資料RD1壓縮成為第一過渡資料TD1,其大小 為2000位元組。接著,由於2000位元組是介於1017~2040位元組之間,所以資料壓縮/解壓縮電路208會以一筆第一填補資料PD1來附加在所產生的第一過渡資料TD1之後,以輸出一個長度為第二預設壓縮長度(即,2040位元組)的第一壓縮資料CD1。
然後,記憶體控制電路單元104(或記憶體管理電路202)會加入一個對應第一資料RD1的第一管理DMI1,於第一壓縮資料CD1之後,其大小為8仟位元組。基此,第一壓縮資料CD1與第一資料管理資訊DMI1會形成第一錯誤檢查與校正框ECCF1。由於第一壓縮資料CD1的長度為第二預設壓縮長度(即,2040位元組),因此,第一錯誤檢查與校正框ECCF1的長度為2048位元組。
此外,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)更儲存關於第一過渡資料TD1的壓縮方式的資訊於第一冗餘位元區SBA1的第一壓縮資訊(未繪示)中。並且,當讀取第一過渡資料TD1時,記憶體控制電路單元104(或記憶體管理電路202)會根據第一壓縮資訊來指示資料壓縮/解壓縮電路214使用對應第一過渡資料TD1的壓縮方式來解壓第一過渡資料TD1。在上述的例子中,第一填補資料PD1的每個位元的位元值為“1”,但本發明不限於此。也就是說,填補資料可以是固定位元值的集合。
值得一提的是,儘管在本範例實施例中,第一填補資料PD1是被附加在第一過渡資料TD1之後,然而,必須瞭解的是, 本發明不限於此,第一填補資料PD1亦可置於第一過渡資料TD1之前或插入至第一過渡資料TD1之中。此外,第一填補資料PD1可以為虛擬資料(Dummy data)或是具有對應第一資料RD1的錯誤檢查碼的虛擬資料,其中此錯誤檢查碼可為對應第一資料RD1的循環冗餘校驗碼或是奇偶檢查碼,本發明不限於此。也就是說,填補資料可以是任何之資料態樣(pattern),但填補資料的目的主要為附加於已壓縮資料,使壓縮資料的長度為預設壓縮長度。
特別是,當需要以第一填補資料PD1來附加至第一過渡資料TD1以產生第一壓縮資料CD1時,資料壓縮/解壓縮電路214會儲存關於第一資料的填塞資訊於第一資料壓縮資訊中,以記錄此筆第一壓縮資料CD1所包含的第一填補資料PD1的大小。此外,對應第一資料的填塞資訊也會包含在第一壓縮資料CD1中第一填補資料PD1的位置,以便於在解壓時還原第一過渡資料TD1。例如,填塞資訊會被記錄在可複寫式非揮發性記憶體模組106中用以儲存系統資料的實體區塊中、儲存在映射表中或者儲存於對應此筆第一資料的第一資料壓縮資訊中,其中第一資料壓縮資訊又可儲存於第一資料RD1的第一實體程式化單元的第一冗餘位元區(First Spare Bits Area,SBA1)中或是對應第一資料RD1的第一資料管理資訊DMI1中。
值得一提的是,在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會指示錯誤檢查與校正電路212對第一錯誤檢查與校正框ECCF1來產生對應第一錯誤檢查與校正 框ECCF1的第一錯誤偵測碼,並且將第一錯誤檢查與校正框ECCF1儲存到第一實體程式化單元的第一資料位元區DBA1(請參見圖9)中。同時,記憶體控制電路單元104(或記憶體管理電路202)將所產生的對應第一錯誤檢查與校正框ECCF1的第一錯誤偵測碼儲存於第一實體程式化單元的第一冗餘位元區SBA1中,其中此第一錯誤偵測碼可為對應第一錯誤檢查與校正框ECCF1的循環冗餘校驗碼或是奇偶檢查碼,本發明不限於此。當記憶體控制電路單元104(或記憶體管理電路202)欲解壓第一過渡資料TD1成為第一資料RD1之前,記憶體控制電路單元104(或記憶體管理電路202)亦可指示錯誤檢查與校正電路212,使用儲存於第一冗餘位元區SBA1的對應第一錯誤檢查與校正框ECCF1的第一錯誤偵測碼來檢查第一錯誤檢查與校正框ECCF1。倘若沒有偵測到錯誤時,記憶體控制電路單元104(或記憶體管理電路202)根據第一資料壓縮資訊以及儲存於第一資料管理資訊DMI1的資訊來解壓並解碼第一過渡資料TD1成為第一資料RD1。
在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會將所產生的第一錯誤檢查與校正碼框ECCF1寫入至第一實體程式化單元的第一資料位元區DBA1中。在另一範例實施例中,錯誤檢查與校正電路212更會根據第一錯誤檢查與校正碼框ECCF1產生對應的第一錯誤偵測碼,並且記憶體控制電路單元104(或記憶體管理電路202)會將所產生的第一錯誤偵測碼儲存至對應儲存第一錯誤檢查與校正碼框ECCF1的第一實體程 式化單元的第一冗餘位元區SBA1中。
之後,當記憶體控制電路單元104(或記憶體管理電路202)欲從實體程式化單元中讀取資料以回應給主機系統1000時,記憶體管理電路202與資料壓縮/解壓縮電路214必須以逆程序來還原資料。
圖9是根據本發明範例實施例所繪示儲存壓縮資料與非壓縮資料於多個實體程式化單元的例子。
請參照圖9,舉例來說,第一實體程式化單元被劃分為第一資料位元區DBA1與第一冗餘位元區SBA1,並且第二實體程式化單元被劃分為第二資料位元區DBA2與第二冗餘位元區SBA2。第一資料RD1是可壓縮資料,且已被壓縮成為第一壓縮資料CD1,其中第一壓縮資料CD1的大小為2040位元組。第二資料RD2是可壓縮資料,且已被壓縮成為第二壓縮資料CD2,其中第二壓縮資料CD2的大小為2040位元組。第三資料D3是不可壓縮資料,其大小為4096位元組。第一實體程式化單元的第一資料位元區DBA1儲存有兩個錯誤檢查與校正框,一個是第一錯誤檢查與校正框ECCF1,另一個是第二錯誤檢查與校正框ECCF2,其大小各為第二錯誤檢查與校正框長度(即,2048位元組)。第一錯誤檢查與校正框ECCF1包括第一壓縮資料CD1和第一資料管理資訊DMI1,並且第二錯誤檢查與校正框ECCF2包括第二壓縮資料CD2和第二資料管理資訊DMI2。從圖9中可見,與第一資料RD1相關的第一資料管理資訊DMI1和與第二資料相關的第二資料管理 資訊DMI2,都不會佔用到第一冗餘位元區SBA1的空間。相對的,由於第三資料D3是不可壓縮的資料,其大小為4096位元組,故第三資料D3整筆資料會被儲存於第二實體程式化單元的第二資料位元區中,並且與第三資料D3相關的第三資料管理資訊DMI3儲存於第二實體程式化單元的第二冗餘位元區SBA2中。也就是說,本發明可以使對應壓縮資料的資料管理資訊可以與其所對應的壓縮資料一同儲存在資料位元區中,不會去佔用到冗餘位元區的空間。如此一來,可以在一個實體程式化單元儲存多筆壓縮資料的時候,還可以使實體程式化單元的冗餘位元區可以保留空間以存放其他資訊。
圖10是根據本發明範例實施例所繪示儲存壓縮資料與非壓縮資料於多個實體程式化單元的另一範例。
請參照圖10,舉例來說,第三實體程式化單元被劃分成第三資料位元區DBA3與第三冗餘位元區SBA3,其中第三資料位元區DBA3的大小為4096位元組。第四實體程式化單元被劃分成第四資料位元區DBA4與第四冗餘位元區SBA4,其中第四資料位元區DBA4的大小為4096位元組。第五實體程式化單元被劃分了第五資料位元區DBA5與第五冗餘位元區SBA5,其中第五資料位元區DBA5的大小為4096位元組。在此,第四資料RD4是可壓縮資料,且已被壓縮成為第四壓縮資料CD4,其中第四壓縮資料CD4的大小為3064位元組。第五資料RD5是可壓縮資料,且已被壓縮成為第五壓縮資料CD5,其中第五壓縮資料CD5的大小為 2040位元組。第六資料D6是不可壓縮資料,其大小為4096位元組。並且,第七資料D7是不可壓縮資料,其大小為3072位元組。
在圖10中,第三實體程式化單元的第三資料位元區DBA3儲存有兩個錯誤檢查與校正框,一個是第四錯誤檢查與校正框ECCF4,其大小為第三錯誤檢查與校正框長度(即,3072位元組);另一個是第五錯誤檢查與校正框ECCF5,其大小為第一錯誤檢查與校正框長度(即,1024位元組)。第四錯誤檢查與校正框ECCF4包括第四壓縮資料CD4和第四資料管理資訊DMI4,第五錯誤檢查與校正框ECCF5包括第五壓縮資料CD5的第一個部份。由於第五壓縮資料CD5不能全部都儲存到第三資料位元區DBA3中,故第五壓縮資料CD5會被分割為兩個部份。第五壓縮資料CD5的第一部份(即,大小為1024位元組的前半部)被劃分為第五錯誤檢查與校正框ECCF5,並且接續在第四錯誤檢查與校正框ECCF4之後被儲存在第三資料位元區DBA3中。第五壓縮資料CD5的第二部份(即,大小為1016位元組的後半部)與對應第五資料RD5的第五資料管理資訊DMI5被規劃為第六錯誤檢查與校正框ECCF6,並且第六錯誤檢查與校正框ECCF6被儲存在第四實體程式化單元的第四資料位元區DBA4中,其中第六錯誤檢查與校正框ECCF6的大小為第一錯誤檢查與校正框長度(即,1024位元組)。
如上所述,第四實體程式化單元的第四資料位元區DBA4已經儲存有第六錯誤檢查與校正框ECCF6,故當記憶體控制電路 單元104(或記憶體管理電路202)要儲存不可壓縮的第六資料D6時,由於第六資料D6不能全部都儲存到第四資料位元區DBA4中,故第六資料D6會被分割為兩個部份。第六資料D6的第一部份(即,大小為3072位元組的前半部)被劃分為第七錯誤檢查與校正框ECCF7並且接續在第六錯誤檢查與校正框ECCF6之後被儲存在第四資料位元區DBA4中,其中第七錯誤檢查與校正框ECCF7的大小為第三錯誤檢查與校正框長度。接著,由於第六資料D6儲存於第四實體程式化單元中,記憶體控制電路單元104(或記憶體管理電路202)會儲存對應第六資料D6的第六資料管理資訊DMI6到第四實體程式化單元的第四冗餘位元區SBA4中。而,第六資料D6的第二部份(即,大小為1024位元組的第二部分)被規劃為第八錯誤檢查與校正框ECCF8,並且第八錯誤檢查與校正框ECCF8被儲存在第五實體程式化單元的第五資料位元區DBA5中,其中第八錯誤檢查與校正框ECCF8的大小為第一錯誤檢查與校正框長度。
值得一提的是,在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會先根據第一過渡資料TD1來產生第一資料管理資訊DMI1,並且根據第一過渡資料TD1與第一資料管理資訊DMI1的大小總和來決定用以儲存第一過渡資料TD1與第一資料管理資訊DMI1的第一錯誤檢查與校正框的大小為哪個錯誤檢查與校正框長度,並且用第一填補資料PD1來填補未填滿的空間。舉例來說,若是第一過渡資料TD1的大小為2000 位元組、第一資料管理資訊DMI1的大小為10位元組,則記憶體控制電路單元104(或記憶體管理電路202)會劃分第一過渡資料TD1與第一資料管理資訊DMI1為第一錯誤檢查與校正框,其大小為第二錯誤檢查與校正框長度(即,2048位元組),並且加入大小為38位元組(即,2048-2000-10=38)的第一填補資料PD1於第一錯誤檢查與校正框中。
圖11為根據本發明第一範例實施例,所繪示的資料管理方法流程圖。
請參考圖11,在步驟S1101中,記憶體控制電路單元104(或記憶體管理電路202)將每一實體程式化單元劃分為資料位元區與冗餘位元區。在步驟S1103中,記憶體控制電路單元104(或記憶體管理電路202)接收第一寫入指令以及對應第一寫入指令的第一資料,接著在步驟S1105中,記憶體控制電路單元104(或記憶體管理電路202)根據第一寫入指令與第一資料產生對應第一資料的第一資料管理資訊,並且在步驟S1107中,記憶體控制電路單元104(或記憶體管理電路202)判斷第一資料是否可壓縮。
倘若在步驟S1107中,記憶體控制電路單元104(或記憶體管理電路202)辨識第一資料可被壓縮時,在步驟S1109中,記憶體控制電路單元104(或記憶體管理電路202)會指示資料壓縮/解壓縮電路壓縮第一資料以產生第一壓縮資料,並且記憶體控制電路單元104(或記憶體管理電路202)會產生對應第一資料的第一資料壓縮資訊,以及將第一壓縮資料與第一資料管理資訊程式 化至實體程式化單元之中的第一實體程式化單元的第一資料位元區。然後,在步驟S1111中,記憶體控制電路單元104(或記憶體管理電路202)會將第一資料壓縮資訊程式化至第一實體程式化單元的第一冗餘位元區,結束整個資料管理方法的流程。
倘若在步驟S1107中,記憶體控制電路單元104(或記憶體管理電路202)辨識第一資料不可被壓縮時,在步驟S1113中,記憶體控制電路單元104(或記憶體管理電路202)會產生對應該第一資料的第一資料壓縮資訊,並且將第一資料程式化至第一實體程式化單元的第一資料位元區。然後在步驟S1115中,記憶體控制電路單元104(或記憶體管理電路202)將第一資料壓縮資訊與第一資料管理資訊程式化至第一實體程式化單元的第一冗餘位元區,結束整個資料管理方法的流程。
[第二範例實施例]
在第二範例實施例中,硬體的結構是相似的,但所使用的資料管理方法會有所不同。以下便針對第二範例實施例與第一範例實施例不同之處做說明。
圖12A~F是根據本發明範例實施例所繪示儲存壓縮資料於實體程式化單元的示意圖。
請參照圖12A,舉例來說,記憶體控制電路單元104(或記憶體管理電路202)接收大小為4096位元組的可壓縮的第一資料RD1,並且對應第一資料RD1,記憶體控制電路單元104(或記憶體管理電路202)指示錯誤檢查與校正電路212產生第一錯誤 檢查與校正碼。接著,記憶體控制電路單元104(或記憶體管理電路202)將第一資料RD1壓縮成為第一過渡資料TD1。在此第一過渡資料TD1的大小為2000bytes,其大於第一預設壓縮長度且小於第二預設壓縮長度。在壓縮第一資料RD1之後,產生了一筆第一資料壓縮資訊(未繪示),其中第一資料壓縮資訊記錄指示第一資料RD已被壓縮的資訊,並且也記錄了第一資料RD1壓縮成第一過渡資料TD1的壓縮率。
請參照圖12B,與第一範例實施例不同的是,由於第一過渡資料TD1的大小大於第一預設壓縮長度且小於第二預設壓縮長度,記憶體控制電路單元104(或記憶體管理電路202)對應第二預設壓縮長度的大小,在第一實體程式化單元中的資料位元區DBA劃分第一資料位元區DBA1,再將第一資料位元區DBA1劃分第一使用者資料區UDA1和第一管理資訊區MIA1,以使第一使用者資料區UDA1的大小為第二預設壓縮長度,而第一管理資訊區MIA1的大小為8位元組。值得一提的是,上述第一管理資訊區MIA1的大小可根據需求而設定,本發明不限定於此。
請參照圖12C和圖12D,由於第一過渡資料TD1的大小小於第一使用者資料區UDA1,記憶體控制電路單元104(或記憶體管理電路202)附加一筆第一填補資料PD1於第一過渡資料TD1之後,成為第一壓縮資料CD1,以使第一壓縮資料CD1的大小等於第一使用者資料區UDA1的大小。同時,記憶體控制電路單元104(或記憶體管理電路202)會記錄第一填補資料PD1的大小與 位址於第一資料壓縮資訊中。
請參照圖12E和圖12F,記憶體控制電路單元104(或記憶體管理電路202)將所產生的第一壓縮資料CD1儲存於第一使用者資料區UDA1中,並且將對應第一資料RD1的第一資料管理資訊DMI1(例如,第一錯誤檢查與校正碼或是對應第一資料的邏輯子單元位址)儲存於第一管理資訊區MIA1中。接著,記憶體控制電路單元104(或記憶體管理電路202)會將對應第一資料RD1的第一資料壓縮資訊儲存至第一冗餘位元區SBA1。
圖13是根據本發明範例實施例所繪示儲存非壓縮資料於實體程式化單元的示意圖。
請參照圖13,假設在第一實體程式化單元中已儲存第一壓縮資料CD1與第二壓縮資料CD2下,記憶體控制電路單元104(或記憶體管理電路202)接收大小為4096位元組的不可壓縮的第三資料D3,其中第三資料D3是不可壓縮資料,其大小為4096bytes,並且第一實體程式化單元沒有空間可以存放第三資料D3。由於排序在第一實體程式化單元後的第二實體程式化單元有著空白的資料位元區,其大小為4096位元組,因此,記憶體控制電路單元104(或記憶體管理電路202)會在第二實體程式化單元的資料位元區劃分大小為4096位元組的第三資料位元區DBA3,將第三資料D3整筆資料全部儲存於第二實體程式化單元的第三資料位元區DBA3中,並且將對應第三資料D3的第三資料管理資訊DMI3與第三資料壓縮資訊儲存於第二實體程式化單元的第二冗 餘位元區SBA2中。
圖14為根據本發明第二範例實施例,所繪示的資料管理方法流程圖。
請參考圖14,在步驟S1401中,記憶體控制電路單元104(或記憶體管理電路202)將每一實體程式化單元至少劃分為一個資料位元區與一個冗餘位元區。接著,在步驟S1403中,記憶體控制電路單元104(或記憶體管理電路202)接收第一寫入指令以及對應第一寫入指令的第一資料,其中第一資料為可壓縮資料。然後,在步驟S1405中,記憶體控制電路單元104(或記憶體管理電路202)指示資料壓縮/解壓縮電路將第一資料壓縮為第一壓縮資料,並產生對應第一資料的第一資料壓縮資訊,其中第一資料壓縮資訊記錄指示第一資料已被壓縮的資訊並且記錄對應第一資料的壓縮率。接著在步驟S1407中,記憶體控制電路單元104(或記憶體管理電路202)將實體程式化單元之中的第一實體程式化單元的第一資料位元區劃分為第一使用者資料區與第一管理資訊區。然後在步驟S1409中,記憶體控制電路單元104(或記憶體管理電路202)將第一壓縮資料程式化至該第一使用者資料區,將對應第一資料的第一資料管理資訊程式化至第一管理資訊區中,並且將第一資料壓縮資訊程式化至第一實體程式化單元的第一冗餘位元區,結束整個資料管理方法的流程。
值得注意的是,上述資料管理資訊/資料管理區或是冗餘位元區所儲存的資訊僅為說明本發明之用,不用於限定本發明。
綜上所述,本發明可以使對應壓縮資料的資料管理資訊可以與其所對應的壓縮資料一同儲存在資料位元區中,不會去佔用到冗餘位元區的空間。如此一來,可以在一個實體程式化單元儲存多筆壓縮資料的時候,還可以使實體程式化單元的冗餘位元區可以保留空間以存放其他資訊,進而增進記憶體儲存裝置的空間使用效率並且有效地管理能夠壓縮資料的相關資訊。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
CD1‧‧‧第一壓縮資料
CD2‧‧‧第二壓縮資料
D3‧‧‧第三非壓縮資料
ECCF1‧‧‧第一錯誤檢查與校正框
ECCF2‧‧‧第二錯誤檢查與校正框
ECCF3‧‧‧第三錯誤檢查與校正框
DBA1‧‧‧第一資料位元區
DBA2‧‧‧第二資料位元區
DMI1‧‧‧第一資料管理資訊
DMI2‧‧‧第二資料管理資訊
DMI3‧‧‧第三資料管理資訊
SBA1‧‧‧第一冗餘位元區
SBA2‧‧‧第二冗餘位元區

Claims (24)

  1. 一種資料管理方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包含多個實體抹除單元並且多個邏輯單元以映射至少部分的該些實體抹除單元,其中每一實體抹除單元具有多個實體程式化單元,該資料管理方法包括:將每一該些實體程式化單元劃分為一資料位元區與一冗餘位元區;接收一第一寫入指令以及對應該第一寫入指令的一第一資料;根據該第一寫入指令與該第一資料產生對應該第一資料的一第一資料管理資訊;判斷該第一資料是否為可壓縮,並根據判斷結果產生對應該第一資料的一第一資料壓縮資訊;倘若該第一資料為可壓縮時,壓縮該第一資料以產生一第一壓縮資料,將該第一壓縮資料與對應該第一資料的一第一資料管理資訊程式化至該些實體程式化單元之中的一第一實體程式化單元的一第一資料位元區,並且將該第一資料壓縮資訊程式化至該第一實體程式化單元的一第一冗餘位元區;以及倘若該第一資料為不可壓縮時,將該第一資料程式化至該第一實體程式化單元的該第一資料位元區,並且將該第一資料壓縮資訊與該第一資料管理資訊程式化至該第一實體程式化單元的該第一冗餘位元區。
  2. 如申請專利範圍第1項所述的資料管理方法,其中該第一寫入指令指示將該第一資料儲存至一第一邏輯子單元,並且上述根據該第一寫入指令與該第一資料產生對應該第一資料的該第一資料管理資訊的步驟包括:將對應該第一資料所產生的一第一資料錯誤檢查與校正碼整合進該第一資料管理資訊中;以及將該第一資料所對應的該第一邏輯子單元的位址整合進該第一資料管理資訊中。
  3. 如申請專利範圍第1項所述的資料管理方法,在上述產生對應該第一資料的該第一資料壓縮資訊的步驟包括:整合指示該第一資料是否被壓縮的資訊進該第一資料壓縮資訊中;以及倘若該第一資料為可壓縮時,整合對應該第一資料的一壓縮率進該第一資料壓縮資訊中。
  4. 如申請專利範圍第1項所述的資料管理方法,更包括:倘若該第一資料為可壓縮時,壓縮該第一資料成為一第一過渡資料;判斷該第一過渡資料的大小;倘若該第一過渡資料的大小小於或等於一第一預設壓縮長度,將該第一過渡資料加入一第一填補資料成為該第一壓縮資料,以使該第一壓縮資料的大小等於該第一預設壓縮長度,並將該第一壓縮資料與該第一資料管理資訊劃分為一第一錯誤檢查與 校正框,其中該第一錯誤檢查與校正框的大小等於一第一錯誤檢查與校正框長度;倘若該第一過渡資料的大小大於該第一預設壓縮長度且小於一第二預設壓縮長度,將該第一過渡資料加入一第二填補資料成為該第一壓縮資料,以使該第一壓縮資料的大小等於該第二預設壓縮長度,並將該第一壓縮資料與該第一資料管理資訊劃分為該第一錯誤檢查與校正框,其中該第一錯誤檢查與校正框的大小等於一第二錯誤檢查與校正框長度;倘若該第一過渡資料的大小大於該第二預設壓縮長度且小於一第三預設壓縮長度,將該第一過渡資料加入一第三填補資料成為該第一壓縮資料,以使該第一壓縮資料的大小等於該第三預設壓縮長度,並將該第一壓縮資料與該第一資料管理資訊劃分為該第一錯誤檢查與校正框,其中該第一錯誤檢查與校正框的大小等於一第三錯誤檢查與校正框長度;以及倘若該第一過渡資料的大小大於該第三預設壓縮長度且小於一第四預設壓縮長度,將該第一過渡資料加入一第四填補資料成為該第一壓縮資料,以使該第一壓縮資料的大小等於該第四預設壓縮長度,並將該第一壓縮資料與該第一資料管理資訊劃分為該第一錯誤檢查與校正框,其中該第一錯誤檢查與校正框的大小等於一第四錯誤檢查與校正框長度;以及將該第一錯誤檢查與校正框程式化至該第一資料位元區。
  5. 如申請專利範圍第4項所述的資料管理方法,更包括: 該第一邏輯子單元的大小與該第一實體程式化單元的大小為一傳輸單元大小,其中該傳輸單元大小為4096位元組;該第一錯誤檢查與校正框長度的大小為該第一實體程式化單元的大小的四分之一;該第二錯誤檢查與校正框長度的大小為該第一實體程式化單元的大小的二分之一;該第三錯誤檢查與校正框長度的大小為該第一實體程式化單元的大小的四分之三;以及該第四錯誤檢查與校正框長度的大小為該第一實體程式化單元的大小。
  6. 如申請專利範圍第4項所述的資料管理方法,更包括:整合對應該第一過渡資料的該第一填補資料、該第二填補資料、該第三填補資料或該第四填補資料的位址與大小的資訊進該第一資料管理資訊中。
  7. 一種資料管理方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包含多個實體抹除單元並且多個邏輯單元以映射至少部分的該些實體抹除單元,其中每一實體抹除單元具有多個實體程式化單元,該資料管理方法包括:將每一該些實體程式化單元至少劃分為一資料位元區與一冗餘位元區;接收一第一資料,其中該第一資料為一可壓縮資料;將該第一資料壓縮為一第一壓縮資料,並產生對應該第一資 料的一第一資料壓縮資訊,其中指示該第一資料是否被壓縮的資訊與對應該第一資料的一壓縮率被整合進該第一資料壓縮資訊中;將該些實體程式化單元之中的一第一實體程式化單元的第一資料位元區劃分為一第一使用者資料區與一第一管理資訊區;將該第一壓縮資料程式化至該第一使用者資料區,將對應該第一資料的一第一資料管理資訊程式化至該第一管理資訊區中,並且將該第一資料壓縮資訊程式化至該第一實體程式化單元的一第一冗餘位元區。
  8. 如申請專利範圍第7項所述的資料管理方法,更包括:接收一第二資料,其中該第二資料為一不可壓縮資料;以及將該第二資料程式化至該些實體程式化單元之中的一第二實體程式化單元的一資料位元區,將對應該第二資料的一第二資料管理資訊與一第二資料壓縮資訊程式化至該第二實體程式化單元的一冗餘位元區,其中指示該第二資料為該不可壓縮資料的資訊被整合進該第二資料壓縮資訊中。
  9. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包含多個實體抹除單元並且多個邏輯單元以映射至少部分的該些實體抹除單元,其中每 一實體抹除單元具有多個實體程式化單元;一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且配置多個邏輯單元以映射至少部分的該些實體抹除單元;以及一資料壓縮/解壓縮電路,耦接該記憶體管理電路,並用以對資料進行壓縮或解壓縮操作,其中該記憶體管理電路用以將每一該些實體程式化單元劃分為一資料位元區與一冗餘位元區,其中該記憶體管理電路更用以接收一第一寫入指令以及對應該第一寫入指令的一第一資料,其中該記憶體管理電路更用以根據該第一寫入指令與該第一資料產生對應該第一資料的一第一資料管理資訊,其中該記憶體管理電路更用以判斷該第一資料是否為可壓縮,並根據判斷結果產生對應該第一資料的一第一資料壓縮資訊,其中倘若該第一資料為可壓縮時,該記憶體管理電路更用以指示該資料壓縮/解壓縮電路壓縮該第一資料以產生一第一壓縮資料,該記憶體管理電路更用以下達一指令序列至該可複寫式非揮發性記憶體模組以將該第一壓縮資料與對應該第一資料的一第一資料管理資訊程式化至該些實體程式化單元之中的一第一實體程式化單元的一第一資料位元區,並且將該第一資料壓縮資訊程式化至該第一實體程式化單元的一第一冗餘位元區,其中倘若該第一資料為不可壓縮時,該記憶體管理電路更用以下達一指令序列至該可複寫式非揮發性記憶體模組以將該第一 資料程式化至該第一實體程式化單元的該第一資料位元區,並且將該第一資料壓縮資訊與該第一資料管理資訊程式化至該第一實體程式化單元的該第一冗餘位元區。
  10. 如申請專利範圍第9項所述的記憶體控制電路單元,其中該第一寫入指令指示將該第一資料儲存至一第一邏輯子單元,並且在上述根據該第一寫入指令與該第一資料產生對應該第一資料的該第一資料管理資訊的運作中,該記憶體管理電路用以將對應該第一資料所產生的一第一資料錯誤檢查與校正碼整合進該第一資料管理資訊中,其中該記憶體管理電路更用以將該第一資料所對應的該第一邏輯子單元的位址整合進該第一資料管理資訊中。
  11. 如申請專利範圍第9項所述的記憶體控制電路單元,在上述產生對應該第一資料的該第一資料壓縮資訊的運作中,該記憶體管理電路更用以整合指示該第一資料是否被壓縮的資訊進該第一資料壓縮資訊中,其中倘若該第一資料為可壓縮時,該記憶體管理電路更用以整合對應該第一資料的一壓縮率進該第一資料壓縮資訊中。
  12. 如申請專利範圍第9項所述的記憶體控制電路單元,更包括:倘若該第一資料為可壓縮時,該資料壓縮/解壓縮電路壓縮該第一資料成為一第一過渡資料,其中該記憶體管理電路更用以判斷該第一過渡資料的大小, 其中倘若該第一過渡資料的大小小於或等於一第一預設壓縮長度,該記憶體管理電路更用以將該第一過渡資料加入一第一填補資料成為該第一壓縮資料,以使該第一壓縮資料的大小等於該第一預設壓縮長度,並將該第一壓縮資料與該第一資料管理資訊劃分為一第一錯誤檢查與校正框,其中該第一錯誤檢查與校正框的大小等於一第一錯誤檢查與校正框長度,其中倘若該第一過渡資料的大小大於該第一預設壓縮長度且小於一第二預設壓縮長度,該記憶體管理電路更用以將該第一過渡資料加入一第二填補資料成為該第一壓縮資料,以使該第一壓縮資料的大小等於該第二預設壓縮長度,並將該第一壓縮資料與該第一資料管理資訊劃分為該第一錯誤檢查與校正框,其中該第一錯誤檢查與校正框的大小等於一第二錯誤檢查與校正框長度,其中倘若該第一過渡資料的大小大於該第二預設壓縮長度且小於一第三預設壓縮長度,該記憶體管理電路更用以將該第一過渡資料加入一第三填補資料成為該第一壓縮資料,以使該第一壓縮資料的大小等於該第三預設壓縮長度,並將該第一壓縮資料與該第一資料管理資訊劃分為該第一錯誤檢查與校正框,其中該第一錯誤檢查與校正框的大小等於一第三錯誤檢查與校正框長度,其中倘若該第一過渡資料的大小大於該第三預設壓縮長度且小於一第四預設壓縮長度,該記憶體管理電路更用以將該第一過渡資料加入一第四填補資料成為該第一壓縮資料,以使該第一壓縮資料的大小等於該第四預設壓縮長度,並將該第一壓縮資料與 該第一資料管理資訊劃分為該第一錯誤檢查與校正框,其中該第一錯誤檢查與校正框的大小等於一第四錯誤檢查與校正框長度,其中該記憶體管理電路更用以下達一指令序列至該可複寫式非揮發性記憶體模組以將該第一錯誤檢查與校正框程式化至該第一資料位元區。
  13. 如申請專利範圍第12項所述的記憶體控制電路單元,更包括:該第一邏輯子單元的大小與該第一實體程式化單元的大小為一傳輸單元大小,其中該傳輸單元大小為4096位元組;該第一錯誤檢查與校正框長度的大小為該第一實體程式化單元的大小的四分之一;該第二錯誤檢查與校正框長度的大小為該第一實體程式化單元的大小的二分之一;該第三錯誤檢查與校正框長度的大小為該第一實體程式化單元的大小的四分之三;以及該第四錯誤檢查與校正框長度的大小為該第一實體程式化單元的大小。
  14. 如申請專利範圍第12項所述的記憶體控制電路單元,更包括:該記憶體管理電路更用以整合對應該第一過渡資料的該第一填補資料、該第二填補資料、該第三填補資料或該第四填補資料的位址與大小的資訊進該第一資料管理資訊中。
  15. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包含多個實體抹除單元並且多個邏輯單元以映射至少部分的該些實體抹除單元,其中每一實體抹除單元具有多個實體程式化單元;一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且配置多個邏輯單元以映射至少部分的該些實體抹除單元;以及一資料壓縮/解壓縮電路,耦接該記憶體管理電路,並用以對資料進行壓縮或解壓縮操作,其中該記憶體管理電路用以將每一該些實體程式化單元至少劃分為一資料位元區與一冗餘位元區,其中該記憶體管理電路用以接收一第一資料,其中該第一資料為一可壓縮資料,其中該記憶體管理電路用以指示該資料壓縮/解壓縮電路將該第一資料壓縮為一第一壓縮資料,並且該記憶體管理電路產生對應該第一資料的一第一資料壓縮資訊,其中指示該第一資料是否被壓縮的資訊與對應該第一資料的一壓縮率被該記憶體管理電路整合進該第一資料壓縮資訊中,其中該記憶體管理電路用以將該些實體程式化單元之中的一第一實體程式化單元的第一資料位元區劃分為一第一使用者資料 區與一第一管理資訊區,其中該記憶體管理電路用以下達一指令序列至該可複寫式非揮發性記憶體模組以將該第一壓縮資料程式化至該第一使用者資料區,將對應該第一資料的一第一資料管理資訊程式化至該第一管理資訊區中,並且將該第一資料壓縮資訊程式化至該第一實體程式化單元的第一冗餘位元區。
  16. 如申請專利範圍第15項所述的記憶體控制電路單元,更包括:該記憶體管理電路更用以接收一第二資料,其中該第二資料為一不可壓縮資料,其中該記憶體管理電路用以下達一指令序列至該可複寫式非揮發性記憶體模組以將該第二資料程式化至該些實體程式化單元之中的一第二實體程式化單元的一資料位元區,將對應該第二資料的一第二資料管理資訊與一第二資料壓縮資訊程式化至該第二實體程式化單元的一冗餘位元區,其中指示該第二資料為該不可壓縮資料的資訊被該記憶體管理電路整合進該第二資料壓縮資訊中。
  17. 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元並且多個邏輯單元以映射至少部分的該些實體抹除單元,其中每一實體抹除單元具有多個實體 程式化單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,並且配置多個邏輯單元以映射至少部分的該些實體抹除單元,該記憶體控制電路單元用以將每一該些實體程式化單元劃分為一資料位元區與一冗餘位元區,其中該記憶體控制電路單元更用以接收一第一寫入指令以及對應該第一寫入指令的一第一資料,其中該記憶體控制電路單元更用以根據該第一寫入指令與該第一資料產生對應該第一資料的一第一資料管理資訊,其中該記憶體控制電路單元更用以判斷該第一資料是否為可壓縮,並根據判斷結果產生對應該第一資料的一第一資料壓縮資訊,其中倘若該第一資料為可壓縮時,該記憶體控制電路單元更用以壓縮該第一資料以產生一第一壓縮資料,將該第一壓縮資料與對應該第一資料的一第一資料管理資訊程式化至該些實體程式化單元之中的一第一實體程式化單元的一第一資料位元區,並且將該第一資料壓縮資訊程式化至該第一實體程式化單元的一第一冗餘位元區,其中倘若該第一資料為不可壓縮時,該記憶體控制電路單元更用以將該第一資料程式化至該第一實體程式化單元的該第一資料位元區,並且將該第一資料壓縮資訊與該第一資料管理資訊程式化至該第一實體程式化單元的該第一冗餘位元區。
  18. 如申請專利範圍第17項所述的記憶體儲存裝置,其中該第一寫入指令指示將該第一資料儲存至一第一邏輯子單元,並且在上述根據該第一寫入指令與該第一資料產生對應該第一資料的該第一資料管理資訊的運作中,該記憶體控制電路單元更用以將對應該第一資料所產生的一第一資料錯誤檢查與校正碼整合進該第一資料管理資訊中,其中該記憶體控制電路單元更用以將該第一資料所對應的該第一邏輯子單元的位址整合進該第一資料管理資訊中。
  19. 如申請專利範圍第17項所述的記憶體儲存裝置,在上述產生對應該第一資料的該第一資料壓縮資訊的運作中,該記憶體控制電路單元更用以記錄指示該第一資料是否被壓縮的資訊於該第一資料壓縮資訊中,其中倘若該第一資料為可壓縮時,該記憶體控制電路單元更用以整合對應該第一資料的一壓縮率進該第一資料壓縮資訊中。
  20. 如申請專利範圍第17項所述的記憶體儲存裝置,更包括:倘若該第一資料為可壓縮時,該記憶體控制電路單元壓縮該第一資料成為一第一過渡資料,其中該記憶體控制電路單元更用以判斷該第一過渡資料的大小,其中倘若該第一過渡資料的大小小於或等於一第一預設壓縮長度,該記憶體控制電路單元更用以將該第一過渡資料加入一第一填補資料成為該第一壓縮資料,以使該第一壓縮資料的大小等 於該第一預設壓縮長度,並將該第一壓縮資料與該第一資料管理資訊劃分為一第一錯誤檢查與校正框,其中該第一錯誤檢查與校正框的大小等於一第一錯誤檢查與校正框長度,其中倘若該第一過渡資料的大小大於該第一預設壓縮長度且小於一第二預設壓縮長度,該記憶體控制電路單元更用以將該第一過渡資料加入一第二填補資料成為該第一壓縮資料,以使該第一壓縮資料的大小等於該第二預設壓縮長度,並將該第一壓縮資料與該第一資料管理資訊劃分為該第一錯誤檢查與校正框,其中該第一錯誤檢查與校正框的大小等於一第二錯誤檢查與校正框長度,其中倘若該第一過渡資料的大小大於該第二預設壓縮長度且小於一第三預設壓縮長度,該記憶體控制電路單元更用以將該第一過渡資料加入一第三填補資料成為該第一壓縮資料,以使該第一壓縮資料的大小等於該第三預設壓縮長度,並將該第一壓縮資料與該第一資料管理資訊劃分為該第一錯誤檢查與校正框,其中該第一錯誤檢查與校正框的大小等於一第三錯誤檢查與校正框長度,其中倘若該第一過渡資料的大小大於該第三預設壓縮長度且小於一第四預設壓縮長度,該記憶體控制電路單元更用以將該第一過渡資料加入一第四填補資料成為該第一壓縮資料,以使該第一壓縮資料的大小等於該第四預設壓縮長度,並將該第一壓縮資料與該第一資料管理資訊劃分為該第一錯誤檢查與校正框,其中 該第一錯誤檢查與校正框的大小等於一第四錯誤檢查與校正框長度,其中該記憶體控制電路單元更用以將該第一錯誤檢查與校正框程式化至該第一資料位元區。
  21. 如申請專利範圍第20項所述的記憶體儲存裝置,更包括:該第一邏輯子單元的大小與該第一實體程式化單元的大小為一傳輸單元大小,其中該傳輸單元大小為4096位元組;該第一錯誤檢查與校正框長度的大小為該第一實體程式化單元的大小的四分之一;該第二錯誤檢查與校正框長度的大小為該第一實體程式化單元的大小的二分之一;該第三錯誤檢查與校正框長度的大小為該第一實體程式化單元的大小的四分之三;以及該第四錯誤檢查與校正框長度的大小為該第一實體程式化單元的大小。
  22. 如申請專利範圍第20項所述的記憶體儲存裝置,更包括:該記憶體控制電路單元更用以整合對應該第一過渡資料的該第一填補資料、該第二填補資料、該第三填補資料或該第四填補資料的位址與大小的資訊進該第一資料管理資訊中。
  23. 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性 記憶體模組具有多個實體抹除單元並且多個邏輯單元以映射至少部分的該些實體抹除單元,其中每一實體抹除單元具有多個實體程式化單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,並且配置多個邏輯單元以映射至少部分的該些實體抹除單元,該記憶體控制電路單元用以將每一該些實體程式化單元劃分為一資料位元區與一冗餘位元區,其中該記憶體控制電路單元更用以接收一第一資料,其中該第一資料為一可壓縮資料,其中該記憶體控制電路單元更用以將該第一資料壓縮為一第一壓縮資料,並且該記憶體控制電路單元產生對應該第一資料的一第一資料壓縮資訊,其中指示該第一資料是否被壓縮的資訊與對應該第一資料的一壓縮率被該記憶體控制電路單元整合進該第一資料壓縮資訊中,其中該記憶體控制電路單元更用以將該些實體程式化單元之中的一第一實體程式化單元的第一資料位元區劃分為一第一使用者資料區與一第一管理資訊區,其中該記憶體控制電路單元更用以將該第一壓縮資料程式化至該第一使用者資料區,將對應該第一資料的一第一資料管理資訊程式化至該第一管理資訊區中,並且將該第一資料壓縮資訊程式化至該第一實體程式化單元的第一冗餘位元區。
  24. 如申請專利範圍第23項所述的記憶體儲存裝置,更包括: 該記憶體控制電路單元更用以接收一第二資料,其中該第二資料為一不可壓縮資料,其中該記憶體控制電路單元更用以將該第二資料程式化至該些實體程式化單元之中的一第二實體程式化單元的一資料位元區,將對應該第二資料的一第二資料管理資訊與一第二資料壓縮資訊程式化至該第二實體程式化單元的一冗餘位元區,其中指示該第二資料為該不可壓縮資料的資訊被該記憶體控制電路單元整合進該第二資料壓縮資訊中。
TW103123835A 2014-07-10 2014-07-10 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 TWI540582B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW103123835A TWI540582B (zh) 2014-07-10 2014-07-10 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
US14/468,342 US9274706B2 (en) 2014-07-10 2014-08-26 Data management method, memory control circuit unit and memory storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103123835A TWI540582B (zh) 2014-07-10 2014-07-10 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TW201603031A true TW201603031A (zh) 2016-01-16
TWI540582B TWI540582B (zh) 2016-07-01

Family

ID=55067589

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103123835A TWI540582B (zh) 2014-07-10 2014-07-10 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置

Country Status (2)

Country Link
US (1) US9274706B2 (zh)
TW (1) TWI540582B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI691834B (zh) * 2018-03-22 2020-04-21 華邦電子股份有限公司 採用連氏錯誤校正碼設計的記憶體儲存裝置及其編碼方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI588833B (zh) * 2015-11-27 2017-06-21 群聯電子股份有限公司 資料程式化方法與記憶體儲存裝置
US10091904B2 (en) * 2016-07-22 2018-10-02 Intel Corporation Storage sled for data center
US10387305B2 (en) * 2016-12-23 2019-08-20 Intel Corporation Techniques for compression memory coloring
CN108259490B (zh) * 2018-01-12 2021-02-02 武汉斗鱼网络科技有限公司 一种客户端校验方法及装置
WO2020026030A2 (en) * 2018-08-03 2020-02-06 Mobileye Vision Technologies Ltd. Accessing a dynamic memory module
JP2020149195A (ja) 2019-03-12 2020-09-17 キオクシア株式会社 メモリシステム
JP2020154525A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステムおよび情報処理システム
CN112540719A (zh) * 2019-09-23 2021-03-23 深圳宏芯宇电子股份有限公司 数据编码方法、存储器存储装置及存储器控制器

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8364929B2 (en) * 2009-10-23 2013-01-29 Seagate Technology Llc Enabling spanning for a storage device
US9189385B2 (en) * 2010-03-22 2015-11-17 Seagate Technology Llc Scalable data structures for control and management of non-volatile storage
KR101649357B1 (ko) * 2010-05-10 2016-08-19 삼성전자주식회사 데이터 저장 장치, 그것의 동작 방법, 그리고 그것을 포함한 스토리지 서버
US8533550B2 (en) * 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
US8996807B2 (en) * 2011-02-15 2015-03-31 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a multi-level cache
US9003104B2 (en) * 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
TWI459197B (zh) * 2011-04-21 2014-11-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
WO2012148828A2 (en) * 2011-04-26 2012-11-01 Lsi Corporation Variable over-provisioning for non-volatile storage
US8949513B2 (en) * 2011-05-10 2015-02-03 Marvell World Trade Ltd. Data compression and compacting for memory devices
US8806108B2 (en) * 2011-06-07 2014-08-12 Hitachi, Ltd. Semiconductor storage apparatus and method of controlling semiconductor storage apparatus
US8862837B1 (en) * 2012-03-26 2014-10-14 Emc Corporation Techniques for automated data compression and decompression
US8725933B2 (en) * 2011-07-01 2014-05-13 Intel Corporation Method to detect uncompressible data in mass storage device
KR101798036B1 (ko) * 2011-08-09 2017-11-15 엘에스아이 코포레이션 I/o 디바이스 및 컴퓨팅 호스팅 상호동작
KR101562781B1 (ko) * 2011-10-05 2015-10-23 엘에스아이 코포레이션 비휘발성 스토리지에 대한 셀프-저널링 및 계층적 일치성
US20140059278A1 (en) * 2011-11-14 2014-02-27 Lsi Corporation Storage device firmware and manufacturing software
KR101862341B1 (ko) * 2012-01-09 2018-05-30 삼성전자주식회사 데이터 압축 기능을 갖는 데이터 저장 장치
WO2013147819A1 (en) * 2012-03-29 2013-10-03 Intel Corporation Compression-enabled blending of data in non-volatile memory
US9053018B2 (en) * 2012-06-29 2015-06-09 International Business Machines Corporation Compressed memory page selection based on a population count of a dataset
US9395924B2 (en) * 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US20140281155A1 (en) * 2013-03-14 2014-09-18 Lsi Corporation Storage device assisted data de-duplication
US9778885B2 (en) * 2013-03-15 2017-10-03 Skyera, Llc Compressor resources for high density storage units
US20150095553A1 (en) * 2013-10-01 2015-04-02 International Business Machines Corporation Selective software-based data compression in a storage system based on data heat
TWI537958B (zh) * 2014-02-21 2016-06-11 群聯電子股份有限公司 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI691834B (zh) * 2018-03-22 2020-04-21 華邦電子股份有限公司 採用連氏錯誤校正碼設計的記憶體儲存裝置及其編碼方法

Also Published As

Publication number Publication date
US9274706B2 (en) 2016-03-01
TWI540582B (zh) 2016-07-01
US20160011785A1 (en) 2016-01-14

Similar Documents

Publication Publication Date Title
TWI540582B (zh) 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
TWI459197B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI534618B (zh) 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置
US9336081B2 (en) Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access
TWI545432B (zh) 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
CN102760099B (zh) 数据写入方法、存储器控制器与存储器储存装置
TW201539455A (zh) 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置
TWI506634B (zh) 資料存取方法、記憶體控制電路單元及記憶體儲存裝置
US20190138391A1 (en) Data encoding method, data decoding method and storage controller
CN104866429A (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
TW201705148A (zh) 映射表存取方法、記憶體控制電路單元及記憶體儲存裝置
TWI548991B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI534814B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN102591737B (zh) 数据写入与读取方法、存储器控制器与存储器储存装置
TWI668699B (zh) 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置
TW201303881A (zh) 資料處理方法、記憶體控制器及記憶體儲存裝置
CN105653391A (zh) 数据存取方法、存储器控制电路单元及存储器储存装置
CN108664350B (zh) 数据保护方法、存储器存储装置及存储器控制电路单元
CN105335096A (zh) 数据管理方法、存储器控制电路单元以及存储器存储装置
TWI545576B (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
US9600363B2 (en) Data accessing method, memory controlling circuit unit and memory storage apparatus
CN110874282B (zh) 数据存取方法、存储器控制电路单元与存储器存储装置
CN105573662A (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置
TWI512750B (zh) 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
CN105426113A (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元