TW201533742A - 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TW201533742A TW201533742A TW103105910A TW103105910A TW201533742A TW 201533742 A TW201533742 A TW 201533742A TW 103105910 A TW103105910 A TW 103105910A TW 103105910 A TW103105910 A TW 103105910A TW 201533742 A TW201533742 A TW 201533742A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- speed
- compression
- decompression
- condition
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1014—One time programmable [OTP] memory, e.g. PROM, WORM
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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一種資料寫入方法、記憶體儲存裝置及記憶體控制電路單元。此方法包括:接收寫入指令與對應於寫入指令的第一資料;獲得第一資料的初始資料傳輸資訊,並且判斷初始資料傳輸資訊是否符合預定條件;當初始資料傳輸資訊符合預定條件時,將第一資料壓縮為第二資料,並且將第二資料寫入至可複寫式非揮發性記憶體模組;以及當初始資料傳輸資訊不符合預定條件時,將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組。
Description
本發明是有關於一種資料寫入方法,且特別是有關於一種資料寫入方法以及使用此方法的記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
在將資料寫入至可複寫式非揮發性記憶體模組之前,此資料可能會被壓縮,以節省可複寫式非揮發性記憶體模組的儲存空間。然而,有些壓縮後資料大小會變大的資料,或者壓縮/解壓縮效率不佳的資料,若經過壓縮再被儲存到可複寫式非揮發性記憶體模組中,有可能會導致後續資料被讀取時的讀取速度大幅下降。
本發明提供一種資料寫入方法、記憶體儲存裝置及記憶體控制電路單元,可在將資料寫入至可複寫式非揮發性記憶體模組之前,根據資料的資料傳輸資訊來決定是否壓縮此資料,以在減少資料的大小與維持資料的讀取性能之間取得平衡。
本發明提供一種資料寫入方法,用於控制一記憶體控制電路單元。此資料寫入方法包括:接收寫入指令與對應於寫入指令的第一資料;獲得第一資料的初始資料傳輸資訊,並且判斷初始資料傳輸資訊是否符合預定條件;當初始資料傳輸資訊符合預定條件時,將第一資料壓縮為第二資料,並且將第二資料寫入至可複寫式非揮發性記憶體模組;以及當初始資料傳輸資訊不符合預定條件時,將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組。
在本發明的一範例實施例中,所述獲得第一資料的初始資料傳輸資訊的步驟包括:壓縮或者掃描部分的第一資料,以獲得第一資料的壓縮資訊,其中第一資料的壓縮資訊包括第一資料的壓縮速度之資訊以及第二資料的資料流傳輸速度之資訊的至少其中之一;以及根據第一資料的壓縮資訊獲得第一資料的初始資料傳輸資訊。
在本發明的一範例實施例中,所述第一資料的初始資料傳輸資訊包括第一資料的壓縮比例之資訊、第一資料的壓縮速度
之資訊、第二資料的解壓縮速度之資訊、第二資料的資料流傳輸速度之資訊、解壓縮後的第二資料的資料流傳輸速度之資訊、以及第一資料是否為連續資料之資訊的至少其中之一。
在本發明的一範例實施例中,所述判斷初始資料傳輸資訊是否符合預定條件的步驟包括:根據第一資料的壓縮比例是否符合壓縮比例條件、第一資料的壓縮速度是否符合壓縮速度條件、第二資料的解壓縮速度是否符合解壓縮速度條件、第二資料的資料流傳輸速度是否符合壓縮傳輸速度條件、解壓縮後的第二資料的資料流傳輸速度是否符合解壓縮傳輸速度條件、以及第一資料是否為連續資料的至少其中之一,來判斷初始資料傳輸資訊是否符合預定條件。
在本發明的一範例實施例中,所述資料寫入方法更包括:根據第一資料是否為連續資料來決定壓縮比例條件、壓縮速度條件、解壓縮速度條件、壓縮傳輸速度條件以及解壓縮傳輸速度條件的至少其中之一。
在本發明的一範例實施例中,所述資料寫入方法更包括:判斷第二資料的解壓縮速度是否符合解壓縮速度門檻值;以及當判定第二資料的解壓縮速度符合解壓縮速度門檻值時,判定第二資料的解壓縮速度符合解壓縮速度條件,其中根據第一資料是否為連續資料來決定解壓縮速度條件的步驟包括:當第一資料是連續資料時,將解壓縮速度門檻值設定為第一解壓縮速度門檻值;以及當第一資料不是連續資料時,將解壓縮速度門檻值設定
為第二解壓縮速度門檻值,其中第一解壓縮速度門檻值高於第二解壓縮速度門檻值。
在本發明的一範例實施例中,所述資料寫入方法更包括:根據第二資料的解壓縮速度與預設讀取速度獲得讀取速度下降比例;判斷讀取速度下降比例是否符合預設速度下降比例;當讀取速度下降比例符合預設速度下降比例時,判定第二資料的解壓縮速度符合解壓縮速度條件;以及當讀取速度下降比例不符合預設速度下降比例時,判定第二資料的解壓縮速度不符合解壓縮速度條件。
在本發明的一範例實施例中,在將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組的步驟之後,所述資料寫入方法更包括:若可複寫式非揮發性記憶體模組的垃圾蒐集程序所蒐集的有效資料包括未經壓縮的第一資料的至少一部分,獲得所述至少一部分的第一資料的後續資料傳輸資訊,並且判斷後續資料傳輸資訊是否符合預定條件;當後續資料傳輸資訊符合預定條件時,將所述至少一部分的第一資料壓縮為第三資料,並且將第三資料寫入至可複寫式非揮發性記憶體模組;以及當後續資料傳輸資訊不符合預定條件時,將未經壓縮的所述至少一部分的第一資料寫入至可複寫式非揮發性記憶體模組。
在本發明的一範例實施例中,所述將第一資料壓縮為第二資料的步驟包括:利用一第一壓縮通道與一第二壓縮通道平行地壓縮一第一部份的第一資料與一第二部份的第一資料,以產生
第二資料,其中第二壓縮通道對於第二部份的第一資料的壓縮是基於第一壓縮通道對於第一部份的第一資料的壓縮結果。
在本發明的一範例實施例中,所述將第一資料壓縮為第二資料的步驟包括:隨著第一資料的壓縮而建立一第一字典,其中資料寫入方法更包括:接收讀取指令,並且根據讀取指令從可複寫式非揮發性記憶體模組中讀取第二資料;以及解壓縮第二資料,並且隨著第二資料的解壓縮而建立第二字典,其中第一字典與第二字典實質上相同。
本發明另提出一種記憶體儲存裝置,此記憶體儲存裝置包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。連接介面單元用以耦接至一主機系統。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組,其中記憶體控制電路單元用以執行以下操作:接收寫入指令與對應於寫入指令的第一資料;獲得第一資料的初始資料傳輸資訊,並且判斷初始資料傳輸資訊是否符合預定條件;當初始資料傳輸資訊符合預定條件時,將第一資料壓縮為第二資料,並且將第二資料寫入至可複寫式非揮發性記憶體模組;以及當初始資料傳輸資訊不符合預定條件時,將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組。
在本發明的一範例實施例中,所述獲得第一資料的初始資料傳輸資訊的操作包括:壓縮或者掃描至少一部分的第一資料,以獲得第一資料的壓縮資訊,其中第一資料的壓縮資訊包括
第一資料的壓縮速度之資訊以及第二資料的資料流傳輸速度之資訊的至少其中之一;以及根據第一資料的壓縮資訊獲得第一資料的初始資料傳輸資訊。
在本發明的一範例實施例中,所述判斷初始資料傳輸資訊是否符合預定條件的操作包括:根據第一資料的壓縮比例是否符合壓縮比例條件、第一資料的壓縮速度是否符合壓縮速度條件、第二資料的解壓縮速度是否符合解壓縮速度條件、第二資料的資料流傳輸速度是否符合壓縮傳輸速度條件、解壓縮後的第二資料的資料流傳輸速度是否符合解壓縮傳輸速度條件、以及第一資料是否為連續資料的至少其中之一,來判斷初始資料傳輸資訊是否符合預定條件。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以根據第一資料是否為連續資料來決定壓縮比例條件、壓縮速度條件、解壓縮速度條件、壓縮傳輸速度條件以及解壓縮傳輸速度條件的至少其中之一。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以執行以下操作:判斷第二資料的解壓縮速度是否符合解壓縮速度門檻值;以及當判定第二資料的解壓縮速度符合解壓縮速度門檻值時,判定第二資料的解壓縮速度符合解壓縮速度條件,其中根據第一資料是否為連續資料來決定解壓縮速度條件的操作包括:當第一資料是連續資料時,將解壓縮速度門檻值設定為第一解壓縮速度門檻值;以及當第一資料不是連續資料時,將解壓
縮速度門檻值設定為第二解壓縮速度門檻值,其中第一解壓縮速度門檻值高於第二解壓縮速度門檻值。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以執行以下操作:根據第二資料的解壓縮速度與預設讀取速度獲得讀取速度下降比例;判斷讀取速度下降比例是否符合預設速度下降比例;當讀取速度下降比例符合預設速度下降比例時,判定第二資料的解壓縮速度符合解壓縮速度條件;以及當讀取速度下降比例不符合預設速度下降比例時,判定第二資料的解壓縮速度不符合解壓縮速度條件。
在本發明的一範例實施例中,在將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組之後,所述記憶體控制電路單元更用以執行以下操作:若可複寫式非揮發性記憶體模組的垃圾蒐集程序所蒐集的有效資料包括未經壓縮的第一資料的至少一部分,獲得所述至少一部分的第一資料的後續資料傳輸資訊,並且判斷後續資料傳輸資訊是否符合預定條件;當後續資料傳輸資訊符合預定條件時,將所述至少一部分的第一資料壓縮為第三資料,並且將第三資料寫入至可複寫式非揮發性記憶體模組;以及當後續資料傳輸資訊不符合預定條件時,將未經壓縮的所述至少一部分的第一資料寫入至可複寫式非揮發性記憶體模組。
在本發明的一範例實施例中,所述將第一資料壓縮為第二資料的操作包括:利用第一壓縮通道與第二壓縮通道平行地壓縮第一部份的第一資料與第二部份的第一資料,以產生第二資
料,其中第二壓縮通道對於第二部份的第一資料的壓縮是基於第一壓縮通道對於第一部份的第一資料的壓縮結果。
在本發明的一範例實施例中,所述將第一資料壓縮為第二資料的操作包括:隨著第一資料的壓縮而建立第一字典,其中記憶體控制電路單元更用以執行以下操作:接收讀取指令,並且根據讀取指令從可複寫式非揮發性記憶體模組中讀取第二資料;以及解壓縮第二資料,並且隨著第二資料的解壓縮而建立第二字典,其中第一字典與第二字典實質上相同。
本發明更提出一種記憶體控制電路單元,此記憶體控制電路單元用於控制一可複寫式非揮發性記憶體模組,此記憶體控制電路單元包括主機介面、記憶體介面、壓縮/解壓縮電路及記憶體管理電路。主機介面用以耦接至一主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面、記憶體介面及壓縮/解壓縮電路,其中記憶體管理電路用以執行以下操作:接收寫入指令與對應於寫入指令的第一資料;獲得第一資料的初始資料傳輸資訊,並且判斷初始資料傳輸資訊是否符合預定條件;當初始資料傳輸資訊符合預定條件時,控制壓縮/解壓縮電路將第一資料壓縮為第二資料,並且將第二資料寫入至可複寫式非揮發性記憶體模組;以及當初始資料傳輸資訊不符合預定條件時,將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組。
在本發明的一範例實施例中,所述獲得第一資料的初始
資料傳輸資訊的操作包括:控制壓縮/解壓縮電路壓縮或者掃描至少一部分的第一資料,以獲得第一資料的壓縮資訊,其中第一資料的壓縮資訊包括第一資料的壓縮速度之資訊以及第二資料的資料流傳輸速度之資訊的至少其中之一;以及根據第一資料的壓縮資訊獲得第一資料的初始資料傳輸資訊。
在本發明的一範例實施例中,所述記憶體管理電路更用以根據第一資料是否為連續資料來決定壓縮比例條件、壓縮速度條件、解壓縮速度條件、壓縮傳輸速度條件以及解壓縮傳輸速度條件的至少其中之一。
在本發明的一範例實施例中,所述記憶體管理電路更用以執行以下操作:判斷第二資料的解壓縮速度是否符合解壓縮速度門檻值;以及當判定第二資料的解壓縮速度符合解壓縮速度門檻值時,判定第二資料的解壓縮速度符合解壓縮速度條件,其中根據第一資料是否為連續資料來決定解壓縮速度條件的操作包括:當第一資料是連續資料時,將解壓縮速度門檻值設定為第一解壓縮速度門檻值;以及當第一資料不是連續資料時,將解壓縮速度門檻值設定為第二解壓縮速度門檻值,其中第一解壓縮速度門檻值高於第二解壓縮速度門檻值。
在本發明的一範例實施例中,所述記憶體管理電路更用以執行以下操作:根據第二資料的解壓縮速度與預設讀取速度獲得讀取速度下降比例;判斷讀取速度下降比例是否符合預設速度下降比例;當讀取速度下降比例符合預設速度下降比例時,判定
第二資料的解壓縮速度符合解壓縮速度條件;以及當讀取速度下降比例不符合預設速度下降比例時,判定第二資料的解壓縮速度不符合解壓縮速度條件。
在本發明的一範例實施例中,在將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組之後,所述記憶體管理電路更用以執行以下操作:若可複寫式非揮發性記憶體模組的垃圾蒐集程序所蒐集的有效資料包括未經壓縮的第一資料的至少一部分,獲得所述至少一部分的第一資料的後續資料傳輸資訊,並且判斷後續資料傳輸資訊是否符合預定條件;當後續資料傳輸資訊符合預定條件時,控制壓縮/解壓縮電路將所述至少一部分的第一資料壓縮為第三資料,並且將第三資料寫入至可複寫式非揮發性記憶體模組;以及當後續資料傳輸資訊不符合預定條件時,將未經壓縮的所述至少一部分的第一資料寫入至可複寫式非揮發性記憶體模組。
在本發明的一範例實施例中,所述控制壓縮/解壓縮電路將第一資料壓縮為第二資料的操作包括:利用第一壓縮通道與第二壓縮通道平行地壓縮第一部份的第一資料與第二部份的第一資料,以產生第二資料,其中第二壓縮通道對於第二部份的第一資料的壓縮是基於第一壓縮通道對於第一部份的第一資料的一壓縮結果。
在本發明的一範例實施例中,所述控制壓縮/解壓縮電路將第一資料壓縮為第二資料的操作包括:隨著第一資料的壓縮而
建立第一字典,其中記憶體管理電路更用以執行以下操作:接收讀取指令,並且根據讀取指令從可複寫式非揮發性記憶體模組中讀取第二資料;以及控制壓縮/解壓縮電路來解壓縮第二資料,並且隨著第二資料的解壓縮而建立第二字典,其中第一字典與第二字典實質上相同。
基於上述,在接收到寫入指令與對應於此寫入指令的資料之後,本發明會獲得此資料的資料傳輸資訊,並且根據此資料傳輸資訊來決定是否壓縮此資料,以有效減少因資料的解壓縮效率太差而影響到後續的資料讀取速度的問題。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧記憶體介面
207‧‧‧壓縮/解壓縮電路
208‧‧‧緩衝記憶體
210‧‧‧電源管理電路
212‧‧‧錯誤檢查與校正電路
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧資料區
504‧‧‧閒置區
506‧‧‧系統區
508‧‧‧取代區
LBA(0)~LBA(D)‧‧‧邏輯位址
S802、S804、S806、S808、S810‧‧‧本發明之一範例實施例的資料寫入方法各步驟
S902、S904、S906、S908、S910、S912、S914‧‧‧本發明之另一範例實施例的資料寫入方法各步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概
要方塊圖。
圖6與圖7是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖8是根據一範例實施例所繪示的資料寫入方法的流程圖。
圖9是根據另一範例實施例所繪示的資料寫入方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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)介面標準、安全數位(Secure Digital,SD)介面標準、記憶棒(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)或者屬
於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。在本範例實施例中,每一實體抹除單元是由64個實體程式化單元組成。然而,在本發明之其他範例實施例中,每一實體抹除單元是由128、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為第一資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)。
然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元104包括記憶體管理電路202、主機介面204、記憶體介面206及壓縮/解壓縮電路207。
記憶體管理電路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介面標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
壓縮(compression)/解壓縮(decompression)電路207是耦接至記憶體管理電路202並且用以執行資料的壓縮/解壓縮。在本範例實施例中,壓縮/解壓縮電路207是基於記憶體管理電路202的控制而執行資料的壓縮/解壓縮。然而,在另一範例實施例中,壓縮/解壓縮電路207也可以是實作在記憶體管理電路202中,本發明不加以限制。壓縮/解壓縮電路207採用之技術原理可為藍波謝夫韋爾奇壓縮(Lempel-Ziv-Welch Compression,LZW Compression)技術、霍夫曼壓縮(Huffman Compression)技術、自適應霍夫曼壓縮(Adaptive Huffman Compression)技術、胡塔克壓縮(Hu-Tucker Compression)技術、算數壓縮(Arithmetic Compression)
技術、自適應算數壓縮(Adaptive Arithmetic Compression)技術、遊程長度壓縮(Run-length Compression)技術或字典壓縮(Dictionary Compression)技術等各種資料壓縮技術,本發明不加以限制。
在一範例實施例中,記憶體控制電路單元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會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖6與圖7是根據一範例實施例所繪示之管理可複寫式
非揮發性記憶體模組的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖6,記憶體管理電路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,記憶體管理電路202會配置邏輯位址LBA(0)~LBA(D)以利於以上述輪替方式在儲存資料之實體抹除單元中進行資料存取。例如,當記憶體儲存裝置100被檔案系統(例如,FAT 32)格式化時,邏輯位址LBA(0)~LBA(D)分別地映射至資料區502的實體抹除單元410(0)~410(F-1)。例如,記憶體管理電路202會建立邏輯位址-實體抹除單元映射表(logical address-physical erasing unit mapping table),以記錄邏輯位址與實體抹除單元之間的映射關係。在此範例實施例中,每一個邏輯位址LBA(0)~LBA(D)的大小是相同於每一個實體抹除單元410(0)~410(F-1)的大小,並且邏輯位址亦可被稱為邏輯區塊位址(logical block address,LBA)。此外,在本發明之另一範例實施例
中,邏輯位址LBA(0)~LBA(D)也可以是一個實體程式化單元的大小或是其他大小,本發明並不在此限。
在本範例實施例中,記憶體管理電路202會接收來自主機系統1000的寫入指令與對應於此寫入指令的資料(以下統稱為第一資料)。然後,記憶體管理電路202會獲得第一資料的資料傳輸資訊(以下統稱為初始資料傳輸資訊),並且根據初始資料傳輸資訊來決定是否壓縮第一資料。若記憶體管理電路202決定壓縮此第一資料,記憶體管理電路202會控制壓縮/解壓縮電路207將此第一資料壓縮為另一資料(以下統稱為第二資料),並且將第二資料寫入至可複寫式非揮發性記憶體模組106。例如,記憶體管理電路202可以發送包括一或多個第一指令的第一指令序列(command sequence)至可複寫式非揮發性記憶體模組106,其中此第一指令序列用以指令第二資料需被寫入至可複寫式非揮發性記憶體模組106。然而,若記憶體管理電路202決定不壓縮此第一資料,則記憶體管理電路202會直接將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組106。例如,記憶體管理電路202可以發送包括一或多個第二指令的第二指令序列至可複寫式非揮發性記憶體模組106,其中此第二指令序列用以指令未經壓縮的第一資料需被寫入至可複寫式非揮發性記憶體模組106。值得說明的是,在本範例實施例中,指令序列可包含一個或多個指令碼。
在本範例實施例中,第一資料的初始資料傳輸資訊包括第一資料的壓縮比例之資訊、第一資料的壓縮速度之資訊、第二
資料的資料流傳輸速度之資訊、第二資料的解壓縮速度之資訊、解壓縮後的第二資料的資料流傳輸速度之資訊、以及第一資料是否為連續資料之資訊的至少其中之一或其組合,且不限於此。在另一範例實施例中,初始資料傳輸資訊不包括檔案格式。
在本範例實施例中,第一資料的壓縮比例是指第一資料被壓縮後所減少的資料量與未經壓縮的第一資料的資料量之比例。例如,記憶體管理電路202可以估計第二資料的資料量。然後,記憶體管理電路202可以將第一資料的資料量減去第二資料的資料量以獲得此壓縮比例的分子(numerator),並且將第一資料的資料量作為此壓縮比例的分母(denominator),從而獲得第一資料的壓縮比例。例如,假設第一資料的資料量是4kB,並且第二資料的資料量是3kB,則記憶體管理電路202可以獲得壓縮後第一資料的資料量相對於未壓縮的第一資料的資料量減少了1kB,並且將第一資料的壓縮比例設定為1/4。也就是說,壓縮後減少的資料量(即,1kB)佔了未壓縮的第一資料的資料量(即,4kB)的1/4。
然而,在另一範例實施例中,第一資料的壓縮比例還可以是任意可用來表示第一資料的壓縮效率的數值或表示式,本發明不加以限制。
在本範例實施例中,第一資料的壓縮速度是指在壓縮第一資料時,第一資料中每單位時間內可被壓縮的資料量。例如,假設壓縮/解壓縮電路207在壓縮第一資料時,每秒可壓縮400MB(400,000,000Bytes)的資料量,則表示第一資料的壓縮速度是
400MB/sec。此外,在另一範例實施例中,壓縮速度也可以稱為壓縮頻寬(bandwidth),本發明不加以限制。
在本範例實施例中,第二資料的資料流傳輸速度是指在將第一資料壓縮為第二資料時,第二資料被透過記憶體介面206傳輸到可複寫式非揮發性記憶體模組106的資料流傳輸速度。在本範例實施例中,假設壓縮後的第一資料(即,第二資料)的每一部份會被立即傳輸到可複寫式非揮發性記憶體模組106,則第二資料的資料流傳輸速度可能會與第一資料的壓縮速度相同。例如,假設第一資料的壓縮速度是400MB/sec,則第二資料的資料流傳輸速度也約是400MB/sec。然而,在另一範例實施例中,第二資料的資料流傳輸速度也可能會與第一資料的壓縮速度不同,本發明不加以限制。
在本範例實施例中,第二資料的解壓縮速度是指在將第一資料壓縮後,壓縮後的第一資料(即,第二資料)中每單位時間內可被解壓縮的資料量。例如,假設壓縮/解壓縮電路207在解壓縮第二資料時,每秒可解壓縮450MB的資料量,則表示第二資料的解壓縮速度是450MB/sec。此外,在另一範例實施例中,解壓縮速度也可以稱為解壓縮頻寬,本發明不加以限制。
在本範例實施例中,解壓縮後的第二資料的資料流傳輸速度是指第二資料被從可複寫式非揮發性記憶體模組106讀取且被解壓縮時,被解壓縮的第二資料被透過主機介面204傳輸到主機系統1000的資料流傳輸速度。在本範例實施例中,假設解壓縮
後的第二資料的每一部份會被立即傳輸到主機系統1000,則解壓縮後的第二資料的資料流傳輸速度可能會與第二資料的解壓縮速度相同。例如,假設第二資料的解壓縮速度是400MB/sec,則解壓縮後的第二資料的資料流傳輸速度也約是400MB/sec。然而,在另一範例實施例中,解壓縮後的第二資料的資料流傳輸速度也可能會與第二資料的解壓縮速度不同,本發明不加以限制。
在本範例實施例中,第一資料是否是連續資料指的是第一資料是否是接續於前一筆被寫入的資料。例如,在本範例實施例中,當對應於第一資料的寫入指令是循序寫入(sequential write)指令時,第一資料就有很大的機率是連續資料。然而,當寫入指令是隨機寫入(random write)指令時,第一資料就有很大的機率不是連續資料。因此,記憶體管理電路202可以根據寫入指令是循序寫入指令或者隨機寫入指令,來判斷第一資料是否是連續資料。例如,記憶體管理電路202可以根據前一個寫入指令所指示的邏輯位址加上前一個寫入指令的寫入資料之資料長度所對應之邏輯位址單位,來獲得前一個寫入指令所使用的最後一個邏輯位址。然後,記憶體管理電路202可以判斷目前的寫入指令所指示的邏輯位址是否接續於前一個寫入指令所使用的最後一個邏輯位址。若目前的寫入指令所指示的邏輯位址是接續於前一個寫入指令所使用的最後一個邏輯位址,記憶體管理電路202可以判定第一資料所對應的寫入指令是循序寫入指令,並且判定第一資料是連續資料。反之,若目前的寫入指令所指示的邏輯位址不是接續
於前一個寫入指令所使用的最後一個邏輯位址,則記憶體管理電路202可以判定第一資料所對應的寫入指令是隨機寫入指令,並且判定第一資料不是連續資料。此外,在另一範例實施例中,記憶體管理電路202還可以利用其他的判斷機制(例如,寫入指令中的特定標籤或指令碼等)來判斷第一資料所對應的寫入指令是循序寫入指令或隨機寫入指令,本發明不加以限制。
在本範例實施例中,記憶體管理電路202會控制壓縮/解壓縮電路207來嘗試壓縮至少一部份的第一資料,以獲得第一資料的壓縮資訊。例如,第一資料的壓縮資訊可以包括第一資料的壓縮速度之資訊以及第二資料的資料流傳輸速度之資訊,且不限於此。此外,在另一範例實施例中,記憶體管理電路202則是會掃描第一資料,以根據第一資料的內容估測第一資料的壓縮速度。例如,記憶體管理電路202可以分析第一資料的組成而獲得第一資料的複雜度(complexity),從而估測第一資料的壓縮速度。或者,記憶體管理電路202也可以根據第一資料的資料量(或資料長度)來查詢紀錄有資料量與壓縮速度之對應關係的一查找表,以獲得第一資料的壓縮速度等等,本發明不加以限制。
在獲得第一資料的壓縮資訊之後,記憶體管理電路202可以根據第一資料的壓縮資訊來獲得第一資料的初始資料傳輸資訊。例如,假設在嘗試壓縮至少部份的第一資料之後,記憶體管理電路202獲得第一資料的壓縮速度是450MB/sec。根據第一資料的壓縮速度,記憶體管理電路202可以估測第二資料的資料流
傳輸速度、第二資料的解壓縮速度及/或解壓縮後的第二資料的資料流傳輸速度。例如,記憶體管理電路202可以估測第二資料的資料流傳輸速度、第二資料的解壓縮速度及/或解壓縮後的第二資料的資料流傳輸速度也約會是450MB/sec。此外,根據不同的資料壓縮技術的特性及/或傳輸介面的種類,記憶體管理電路202也可以增加或減少第一資料的壓縮速度而獲得第二資料的資料流傳輸速度、第二資料的解壓縮速度及/或解壓縮後的第二資料的資料流傳輸速度,本發明不加以限制。類似地,透過嘗試壓縮或者掃描至少一部份的第一資料,記憶體管理電路202也可以預先獲得第二資料的資料量,並且根據第一資料的資料量與第二資料的資料量來獲得第一資料的壓縮比例。
在本範例實施例中,壓縮/解壓縮電路207對於第一資料的壓縮與對於第二資料的解壓縮是對稱的。以LZW壓縮技術為例,若記憶體管理電路202決定壓縮第一資料,記憶體管理電路202會控制壓縮/解壓縮電路207將第一資料壓縮為第二資料,並且隨著第一資料的壓縮而建立一字典(以下統稱為第一字典),以利用此第一字典記錄第一資料與第二資料的對應關係。然後,當記憶體管理電路202接收到來自主機系統1000且對應於第一資料的讀取指令時,記憶體管理電路202會根據此讀取指令從可複寫式非揮發性記憶體模組106中讀取第二資料,並且控制壓縮/解壓縮電路207解壓縮第二資料。在壓縮/解壓縮電路207解壓縮第二資料時,壓縮/解壓縮電路207會隨著第二資料的解壓縮而建立另一
個字典(以下統稱為第二字典),以利用此第二字典記錄第一資料與第二資料的對應關係。在本範例實施例中,第一字典的記載內容會與第二字典的記載內容實質上相同。在此提及的第一字典的記載內容與第二字典的記載內容實質上相同,指的是第一字典與第二字典所各別記載的第一資料與第二資料的對應關係是相同的(即,對稱式的壓縮/解壓縮技術之特性),而第一字典與第二字典各別的格式或者所記載的部分輔助資料則可以相同也可以不相同,本發明不加以限制。
舉例來說,若記憶體管理電路202決定壓縮字串「ABBBABAAB」(即,第一資料),則壓縮/解壓縮電路207可以壓縮字串「ABBBABAAB」以產生字串「124313」(即,第二資料),並且隨著第一資料的壓縮而逐步建立第一字典。例如,第一字典的內容可包括「1=A、2=B、3=AB、4=BB、5=BBA、6=ABA、7=AA」。然後,記憶體管理電路202會將字串「124313」(即,第二資料)寫入至可複寫式非揮發性記憶體模組106。當字串「124313」(即,第二資料)被從可複寫式非揮發性記憶體模組106讀取之後,壓縮/解壓縮電路207會解壓縮字串「124313」(即,第二資料)為「ABBBABAAB」(即,第一資料),並且隨著字串「124313」(即,第二資料)的解壓縮而逐步產生第二字典。例如,此第二字典的內容同樣可包括「1=A,2=B,3=AB,4=BB,5=BBA,6=ABA,7=AA」。更詳細而言,以第一字典與第二字典中的「1=A」為例,「1」亦可稱為字典索引值,而「A」則可稱為字典內容,以此類推。
基於上述,在本範例實施例中,當壓縮/解壓縮電路207在壓縮第一資料時,壓縮/解壓縮電路207會逐步地產生第一字典,並且利用第一字典來完成第一資料的壓縮。當壓縮/解壓縮電路207在解壓縮第二資料時,壓縮/解壓縮電路207會逐步地產生與第一字典實質上相同的第二字典,並且利用第二字典來完成第二資料的解壓縮。也就是說,在本範例實施例中,壓縮/解壓縮電路207壓縮第一資料與解壓縮第二資料的步驟、程序及所需時間是類似的,因此,第一資料的壓縮速度與第二資料的解壓縮速度可以被視為相同或者幾乎相同。然而,本發明並不將第一字典與第二字典的建立限定於上述。例如,在一範例實施例中,第一字典及/或第二字典也可以是預先配置在壓縮/解壓縮電路207及/或可複寫式非揮發性記憶體模組106中,而不是在壓縮第一資料及/或解壓縮第二資料時即時地被建立。當第二資料被從可複寫式非揮發性記憶體模組106讀取時,壓縮/解壓縮電路207可以利用此第一字典或第二字典來解壓縮第二資料。或者,在另一範例實施例中,壓縮/解壓縮電路207則是會將即時產生或著預先建立的第一字典的至少一部份隨著第二資料寫入至可複寫式非揮發性記憶體模組106中。當記憶體管理電路202在從可複寫式非揮發性記憶體模組106中讀取第二資料時,記憶體管理電路202會一併讀取可複寫式非揮發性記憶體模組106中的第一字典。然後,壓縮/解壓縮電路207可以利用此第一字典來解壓縮第二資料。此外,在另一範例實施例中,壓縮/解壓縮電路207對於第一資料的壓縮
與對於第二資料的解壓縮也可以是不對稱的,本發明不加以限制。
在本範例實施例中,壓縮/解壓縮電路207具有多個壓縮/解壓縮通道。在壓縮第一資料時,壓縮/解壓縮電路207可以利用這些壓縮/解壓縮通道來平行地壓縮不同部分的第一資料,以產生第二資料。以兩個壓縮通道(以下統稱為第一壓縮通道與第二壓縮通道)為例,壓縮/解壓縮電路207可以利用第一壓縮通道與第二壓縮通道平行地壓縮第一部份的第一資料與第二部份的第一資料。特別是,第二壓縮通道對於第二部份的第一資料的壓縮是基於第一壓縮通道對於第一部份的第一資料的壓縮結果。以字串「ABBBABAAB」為例,假設壓縮/解壓縮電路207的第一壓縮通道是負責壓縮此字串中的第1個字元至第4個字元「ABBB」,並且壓縮/解壓縮電路207的第二壓縮通道是負責壓縮此字串中的第5個字元至第9個字元「ABAAB」。壓縮/解壓縮電路207的第一壓縮通道會先壓縮資料「ABBB」為第二資料中的「124」,並且將「1=A,2=B,3=AB,4=BB」寫入第一字典中。然後,壓縮/解壓縮電路207的第二壓縮通道會基於第一字典中的「1=A,3=AB」來壓縮資料「ABAAB」為第二資料中的「313」。也就是說,雖然壓縮/解壓縮電路207的第一壓縮通道與第二壓縮通道是平行地處理資料「ABBB」與資料「ABAAB」,但是,實際上壓縮/解壓縮電路207的第二壓縮通道可能會等待壓縮/解壓縮電路207的第一壓縮通道的壓縮結果產生(例如,建立字典中的部分資料)後,才能進行資料壓縮。在另一範例實施例中,不同之壓縮/解壓縮通道各別
獨立地建立所屬之字典,而不需讓壓縮/解壓縮通道之其中之一等待另一壓縮/解壓縮通道之壓縮結果。此外,在另一範例實施例中,壓縮/解壓縮電路207則僅具有單一的壓縮/解壓縮通道,本發明不加以限制。
在本範例實施例中,記憶體管理電路202會判斷第一資料的初始資料傳輸資訊是否符合預定條件,以決定是否壓縮第一資料。例如,記憶體管理電路202可以根據第一資料的壓縮比例是否符合一壓縮比例條件、第一資料的壓縮速度是否符合一壓縮速度條件、第二資料的資料流傳輸速度是否符合一壓縮傳輸速度條件、第二資料的解壓縮速度是否符合一解壓縮速度條件、解壓縮後的第二資料的資料流傳輸速度是否符合一解壓縮傳輸速度條件、以及第一資料是否為連續資料的至少其中之一,來判斷初始資料傳輸資訊是否符合預定條件。
記憶體管理電路202可以判斷第一資料的壓縮比例是否符合一壓縮比例門檻值。若第一資料的壓縮比例符合(例如,大於或等於)壓縮比例門檻值,記憶體管理電路202判定第一資料的壓縮比例符合壓縮比例條件。若第一資料的壓縮比例不符合(例如,小於)壓縮比例門檻值,則記憶體管理電路202判定第一資料的壓縮比例不符合壓縮比例條件。
記憶體管理電路202可以判斷第一資料的壓縮速度是否符合一壓縮速度門檻值。若第一資料的壓縮速度符合(例如,大於或等於)壓縮速度門檻值,記憶體管理電路202判定第一資料的壓
縮速度符合壓縮速度條件。若第一資料的壓縮速度不符合(例如,小於)壓縮速度門檻值,則記憶體管理電路202判定第一資料的壓縮速度不符合壓縮速度條件。
記憶體管理電路202可以判斷第二資料的資料流傳輸速度是否符合一壓縮傳輸速度門檻值。若第二資料的資料流傳輸速度符合(例如,大於或等於)壓縮傳輸速度門檻值,記憶體管理電路202判定第二資料的資料流傳輸速度符合壓縮傳輸速度條件。若第二資料的資料流傳輸速度不符合(例如,小於)壓縮傳輸速度門檻值,則記憶體管理電路202判定第二資料的資料流傳輸速度不符合壓縮傳輸速度條件。
記憶體管理電路202可以判斷第二資料的解壓縮速度是否符合一解壓縮速度門檻值。若第二資料的解壓縮速度符合(例如,大於或等於)解壓縮速度門檻值,記憶體管理電路202判定第二資料的解壓縮速度符合解壓縮速度條件。若第二資料的解壓縮速度不符合(例如,小於)解壓縮速度門檻值,則記憶體管理電路202判定第二資料的解壓縮速度不符合解壓縮速度條件。
記憶體管理電路202可以判斷解壓縮後的第二資料的資料流傳輸速度是否符合一解壓縮傳輸速度門檻值。若解壓縮後的第二資料的資料流傳輸速度符合(例如,大於或等於)解壓縮傳輸速度門檻值,記憶體管理電路202判定解壓縮後的第二資料的資料流傳輸速度符合解壓縮傳輸速度條件。若解壓縮後的第二資料的資料流傳輸速度不符合(例如,小於)解壓縮傳輸速度門檻值,則記
憶體管理電路202判定解壓縮後的第二資料的資料流傳輸速度不符合解壓縮傳輸速度條件。
值得一提的是,上述各個判斷可以單獨使用也可以任二個、任三個、任四個、任五個、六個同時使用或者撘配其餘的判斷機制來使用,本發明不加以限制。例如,在一範例實施例中,當第一資料的壓縮比例符合壓縮比例條件、第一資料的壓縮速度符合壓縮速度條件、第二資料的資料流傳輸速度符合壓縮傳輸速度條件、第二資料的解壓縮速度符合解壓縮速度條件、解壓縮後的第二資料的資料流傳輸速度符合解壓縮傳輸速度條件、或者第一資料為連續資料時,記憶體管理電路202判定初始資料傳輸資訊符合預定條件。此外,在另一範例實施例中,當第一資料的壓縮比例符合壓縮比例條件並且第二資料的解壓縮速度符合解壓縮速度條件時,記憶體管理電路202才會判定初始資料傳輸資訊符合預定條件,且不限於此。
當初始資料傳輸資訊符合預定條件時,記憶體管理電路202會控制壓縮/解壓縮電路207將第一資料壓縮為第二資料,並且將第二資料寫入至可複寫式非揮發性記憶體模組106。此外,當初始資料傳輸資訊不符合預定條件時,記憶體管理電路202會直接將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組106。
值得一提的是,資料在循序讀取與隨機讀取時的讀取速度(或頻寬)可能有所不同,例如,主機系統1000透過循序讀取從
記憶體儲存裝置100中讀取資料時的讀取速度,普遍會大於主機系統1000透過隨機讀取從記憶體儲存裝置100中讀取資料時的讀取速度,因此,在一範例實施例中,記憶體管理電路202亦可根據第一資料是否為連續資料來決定或者調整壓縮比例條件、壓縮速度條件、壓縮傳輸速度條件、解壓縮速度條件以及解壓縮傳輸速度條件的至少其中之一。例如,當第一資料是連續資料時,記憶體管理電路202可以將壓縮比例條件、壓縮速度條件、解壓縮速度條件及解壓縮傳輸速度條件的至少其中之一的門檻值設定為第一門檻值。當第一資料不是連續資料時,記憶體管理電路202可以將壓縮速度條件、壓縮速度條件、解壓縮速度條件及解壓縮傳輸速度條件的至少其中之一的門檻值設定為第二門檻值。第一門檻值會高於第二門檻值。此外,壓縮速度條件的門檻值亦稱為壓縮速度門檻值,壓縮速度條件的門檻值亦稱為壓縮速度門檻值,解壓縮速度條件的門檻值亦稱為解壓縮速度門檻值,並且解壓縮傳輸速度條件的門檻值亦稱為解壓縮傳輸速度門檻值。
以解壓縮速度條件為例,在一範例實施例中,當記憶體管理電路202判定第一資料所對應的寫入指令是循序寫入指令時,表示第一資料應該是連續資料,因此記憶體管理電路202會根據對應於循序讀取的預設讀取速度將解壓縮速度門檻值設定為一個解壓縮速度門檻值(以下統稱為第一解壓縮速度門檻值)。然而,若記憶體管理電路202判定第一資料所對應的寫入指令是隨機寫入指令,表示第一資料應該不是連續資料,因此記憶體管理
電路202會根據對應於隨機讀取的預設讀取速度將解壓縮速度門檻值設定為另一個解壓縮速度門檻值(以下統稱為第二解壓縮速度門檻值)。特別是,第一解壓縮速度門檻值會高於第二解壓縮速度門檻值。舉例來說,假設記憶體管理電路202對應於循序讀取的預設讀取速度是600MB/sec,則當記憶體管理電路202判定第一資料是連續資料時,記憶體管理電路202可以將解壓縮速度門檻值設定為500MB/sec(即,第一解壓縮速度門檻值)。另外,假設記憶體管理電路202對應於隨機讀取的預設讀取速度是300MB/sec,則當記憶體管理電路202判定第一資料不是連續資料時,記憶體管理電路202可以將解壓縮速度門檻值設定為250MB/sec(即,第二解壓縮速度門檻值)。也就是說,若第一資料是連續資料,則記憶體管理電路202可以將解壓縮速度門檻值設定為對應於循序讀取的預設讀取速度乘上一特定倍數(例如,5/6)。若第一資料不是連續資料,則記憶體管理電路202可以將此解壓縮速度門檻值設定為對應於隨機讀取的預設讀取速度乘上此特定倍數(例如,5/6)。然而,此特定倍數也可以是根據第一資料是否是連續資料而有所不同。此外,記憶體管理電路202也可以根據使用者的設定指令或者任意的規則來設定第一解壓縮速度門檻值與第二解壓縮速度門檻值,本發明不加以限制。
同樣以解壓縮速度條件為例,在另一範例實施例中,記憶體管理電路202則是會根據第二資料的解壓縮速度與預設讀取速度獲得讀取速度下降比例。在此提及的讀取速度下降比例是指
因資料的解壓縮導致每單位時間內從記憶體儲存裝置100傳輸到主機系統1000的資料量的下降比例。此外,在此提及的預設讀取速度是指一般情況下主機系統1000從記憶體儲存裝置100中讀取資料時的讀取速度。此預設讀取頻寬可以是一預設值或者是隨著第一資料所對應的寫入指令是循序寫入指令或者隨機寫入指令而有所不同。例如,反應於第一資料所對應的寫入指令是循序寫入指令或者隨機寫入指令,此預設讀取速度可以是對應於循序讀取的預設讀取速度或者是對應於隨機讀取的預設讀取速度。然後,記憶體管理電路202會判斷讀取速度下降比例是否符合預設速度下降比例。例如,假設記憶體管理電路202獲得第二資料的解壓縮速度是300MB/sec,並且預設讀取速度是600MB/sec,則記憶體管理電路202可以獲得讀取速度下降比例是1/2(即,300/600)。若預設速度下降比例是1/6,記憶體管理電路202會得知所獲得的讀取速度下降比例(即,1/2)不符合(例如,大於)預設速度下降比例(即,1/6)。又例如,假設第二資料的解壓縮速度是270MB/sec,並且預設讀取速度是300MB/sec,則記憶體管理電路202可以獲得讀取速度下降比例是1/10(即,30/300)。若預設速度下降比例是1/6,則記憶體管理電路202會得知所獲得的讀取速度下降比例(即,1/10)符合(例如,小於或等於)預設速度下降比例(即,1/6)。當讀取速度下降比例符合預設速度下降比例時,記憶體管理電路202會判定第二資料的解壓縮速度符合解壓縮速度條件。反之,當讀取速度下降比例不符合預設速度下降比例時,記憶體管理電路
202則是會判定第二資料的解壓縮速度不符合解壓縮速度條件。此外,此範例實施例中的第二資料的解壓縮速度也可以替換為第一資料的壓縮速度、第二資料的資料流傳輸速度或者解壓縮後的第二資料的資料流傳輸速度等,本發明不加以限制。
在一範例實施例中,記憶體管理電路202亦可判斷可複寫式非揮發性記憶體模組106的垃圾蒐集(garbage collection)程序中,所蒐集的有效資料是否包括未經壓縮的資料。若此垃圾蒐集程序所蒐集的有效資料包括未經壓縮的資料,則記憶體管理電路202會獲得所蒐集的有效資料中的未經壓縮的資料的資料傳輸資訊(以下統稱為後續資料傳輸資訊),並且根據後續資料傳輸資訊來決定是否壓縮被蒐集的有效資料中未經壓縮的資料。以圖7的範例實施例為例,假設記憶體管理電路202是將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組106的實體抹除單元410(0)中。當可複寫式非揮發性記憶體模組106在執行對於實體抹除單元410(0)的垃圾蒐集程序時,記憶體管理電路202會判斷此垃圾蒐集程序所搜集的有效資料是否包含至少部份的未經壓縮的第一資料。若記憶體管理電路202判定此垃圾蒐集程序所蒐集的有效資料包括至少部份的未經壓縮的第一資料,則記憶體管理電路202會獲得此至少部份的未經壓縮的第一資料的後續資料傳輸資訊,並且判斷此後續資料傳輸資訊是否符合上述特定條件。若此後續資料傳輸資訊符合上述特定條件,記憶體管理電路202會控制壓縮/解壓縮電路207將此至少部份的未經壓縮的第一資料壓縮為另
一資料(以下為統稱為第三資料),並且將第三資料隨著垃圾蒐集程序重新寫入至可複寫式非揮發性記憶體模組106。例如,記憶體管理電路202可以發送包括一或多個第三指令的第三指令序列至可複寫式非揮發性記憶體模組106,其中此第三指令序列用以指令第三資料需被寫入至可複寫式非揮發性記憶體模組106。反之,若此後續資料傳輸資訊不符合上述特定條件,則記憶體管理電路202不壓縮此至少部份的未經壓縮的第一資料。此範例實施例中提及的後續資料傳輸資訊類似於上述初始資料傳輸資訊,並且詳細的判斷機制可參考前述各個範例實施例的說明,在此不加以贅述。
圖8是根據一範例實施例所繪示的資料寫入方法的流程圖。
請參照圖8,在步驟S802中,由記憶體管理電路202接收寫入指令與對應於寫入指令的第一資料。
在步驟S804中,由記憶體管理電路202獲得第一資料的初始資料傳輸資訊。
在步驟S806中,由記憶體管理電路202判斷初始資料傳輸資訊是否符合預定條件。
若初始資料傳輸資訊符合預定條件,在步驟S808中,由記憶體管理電路202控制壓縮/解壓縮電路207將第一資料壓縮為第二資料,並且將第二資料寫入至可複寫式非揮發性記憶體模組106。
若記憶體管理電路202初始資料傳輸資訊不符合預定條
件,在步驟S810中,由記憶體管理電路202直接將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組106。
圖9是根據另一範例實施例所繪示的資料寫入方法的流程圖。
請參照圖9,在步驟S902中,由記憶體管理電路202接收寫入指令與對應於寫入指令的第一資料。
在步驟S904中,由記憶體管理電路202獲得第一資料的壓縮比例之資訊。
在步驟S906中,由記憶體管理電路202根據第一資料的壓縮比例之資訊判斷第一資料是否適合被壓縮。例如,記憶體管理電路202可以根據第一資料的壓縮比例是否符合壓縮比例條件來判斷第一資料是否適合被壓縮。當第一資料的壓縮比例符合壓縮比例條件時,記憶體管理電路202判定第一資料適合被壓縮。反之,當第一資料的壓縮比例不符合壓縮比例條件時,記憶體管理電路202判定第一資料不適合被壓縮。
若記憶體管理電路202判定第一資料不適合被壓縮,在步驟S914中,由記憶體管理電路202直接將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組106。
若記憶體管理電路202判定第一資料適合被壓縮,在步驟S908中,由記憶體管理電路202獲得第二資料的解壓縮速度之資訊。
在步驟S910中,由記憶體管理電路202判斷第二資料的
解壓縮速度是否符合解壓縮速度條件。例如,記憶體管理電路202可以判斷第二資料的解壓縮速度是否符合解壓縮速度門檻值。當第二資料的解壓縮速度符合解壓縮速度門檻值時,記憶體管理電路202判定第二資料的解壓縮速度符合解壓縮速度條件。反之,當第二資料的解壓縮速度不符合解壓縮速度門檻值時,記憶體管理電路202可以判定第二資料的解壓縮速度不符合解壓縮速度條件。
若記憶體管理電路202判定第二資料的解壓縮速度符合解壓縮速度條件,在步驟S912中,由記憶體管理電路202控制壓縮/解壓縮電路207將第一資料壓縮為第二資料,並且將第二資料寫入至可複寫式非揮發性記憶體模組106。
若記憶體管理電路202判定第二資料的解壓縮速度不符合解壓縮速度條件,在步驟S914中,由記憶體管理電路202直接將未經壓縮的第一資料寫入至可複寫式非揮發性記憶體模組106。
值得一提的是,雖然圖9的範例實施例是以第一資料的壓縮比例是否符合壓縮比例條件以及第二資料的解壓縮速度是否符合解壓縮速度條件來作為是否壓縮第一資料的依據,但是在其他的範例實施例中,第一資料的壓縮速度是否符合壓縮速度條件、第二資料的資料流傳輸速度是否符合壓縮傳輸速度條件、解壓縮後的第二資料的資料流傳輸速度是否符合解壓縮傳輸速度條件以及第一資料是否為連續資料也可以單獨或者取至少其中之二來取代或者撘配圖9之範例實施例中所使用的判斷條件。此外,
圖9中的步驟S908也可以在步驟S904中一併執行,及/或步驟S906與S910的執行順序也可以同步執行或者對調,例如,先執行步驟S910的判斷,若判斷為是,再接續執行步驟S906的判斷等等,本發明不加以限制。此外,圖8與圖9中各步驟已詳細說明如上,在此便不在贅述。值得注意的是,圖8與圖9中各步驟可以實作為多個程式碼或是電路,本發明並不在此限。圖8與圖9的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明並不在此限。
綜上所述,本發明的資料寫入方法、記憶體儲存裝置及記憶體控制電路單元,在將資料寫入至可複寫式非揮發性記憶體模組之前,會先獲得此資料的資料傳輸資訊,並且根據此資料傳輸資訊來決定是否壓縮此資料,以有效減少因資料的解壓縮效率太差而影響到後續的資料讀取速度的問題。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S802、S804、S806、S808、S810‧‧‧資料寫入方法各步驟
Claims (33)
- 一種資料寫入方法,用於一記憶體控制電路單元,該資料寫入方法包括:接收一寫入指令與對應於該寫入指令的一第一資料;獲得該第一資料的一第一資料傳輸資訊初始資料傳輸資訊,並且判斷該第一資料傳輸資訊初始資料傳輸資訊是否符合一預定條件;當該初始資料傳輸資訊符合該預定條件時,將該第一資料壓縮為一第二資料,並且將該第二資料寫入至一可複寫式非揮發性記憶體模組;以及當該初始資料傳輸資訊不符合該預定條件時,將未經壓縮的該第一資料寫入至該可複寫式非揮發性記憶體模組。
- 如申請專利範圍第1項所述的資料寫入方法,其中獲得該第一資料的該初始資料傳輸資訊的步驟包括:壓縮或者掃描至少一部分的該第一資料,以獲得該第一資料的一壓縮資訊,其中該第一資料的該壓縮資訊包括該第一資料的一壓縮速度之資訊以及該第二資料的一資料流傳輸速度之資訊的至少其中之一;以及根據該第一資料的該壓縮資訊獲得該第一資料的該初始資料傳輸資訊。
- 如申請專利範圍第1項所述的資料寫入方法,其中該第一資料的該初始資料傳輸資訊包括該第一資料的一壓縮比例之資 訊、該第一資料的一壓縮速度之資訊、該第二資料的一資料流傳輸速度之資訊、該第二資料的一解壓縮速度之資訊、解壓縮後的該第二資料的一資料流傳輸速度之資訊、以及該第一資料是否為一連續資料之資訊的至少其中之一。
- 如申請專利範圍第3項所述的資料寫入方法,其中判斷該初始資料傳輸資訊是否符合該預定條件的步驟包括:根據該第一資料的該壓縮比例是否符合一壓縮比例條件、該第一資料的該壓縮速度是否符合一壓縮速度條件、該第二資料的該資料流傳輸速度是否符合一壓縮傳輸速度條件、該第二資料的該解壓縮速度是否符合一解壓縮速度條件、解壓縮後的該第二資料的該資料流傳輸速度是否符合一解壓縮傳輸速度條件、以及該第一資料是否為該連續資料的至少其中之一,來判斷該初始資料傳輸資訊是否符合該預定條件。
- 如申請專利範圍第4項所述的資料寫入方法,更包括:根據該第一資料是否為該連續資料來決定該壓縮比例條件、該壓縮速度條件、該壓縮傳輸速度條件、該解壓縮速度條件以及該解壓縮傳輸速度條件的至少其中之一。
- 如申請專利範圍第5項所述的資料寫入方法,其中根據該第一資料是否為該連續資料來決定該壓縮比例條件、該壓縮速度條件、該壓縮傳輸速度條件、該解壓縮速度條件以及該解壓縮傳輸速度條件的至少其中之一的步驟包括:當該第一資料是該連續資料時,將該壓縮比例條件、該壓縮 速度條件、該解壓縮速度條件及該解壓縮傳輸速度條件的至少其中之一的一門檻值設定為一第一門檻值;以及當該第一資料不是該連續資料時,將該壓縮比例條件、該壓縮速度條件、該解壓縮速度條件及該解壓縮傳輸速度條件的至少其中之一的該門檻值設定為一第二門檻值,其中該第一門檻值高於該第二門檻值。
- 如申請專利範圍第4項所述的資料寫入方法,更包括:判斷該第二資料的該解壓縮速度是否符合一解壓縮速度門檻值;以及當判定該第二資料的該解壓縮速度符合該解壓縮速度門檻值時,判定該第二資料的該解壓縮速度符合該解壓縮速度條件。
- 如申請專利範圍第4項所述的資料寫入方法,更包括:根據該第二資料的該解壓縮速度與一預設讀取速度獲得一讀取速度下降比例;判斷該讀取速度下降比例是否符合一預設速度下降比例;當該讀取速度下降比例符合該預設速度下降比例時,判定該第二資料的該解壓縮速度符合該解壓縮速度條件;以及當該讀取速度下降比例不符合該預設速度下降比例時,判定該第二資料的該解壓縮速度不符合該解壓縮速度條件。
- 如申請專利範圍第1項所述的資料寫入方法,其中在將未經壓縮的該第一資料寫入至該可複寫式非揮發性記憶體模組的步驟之後,該資料寫入方法更包括: 若該可複寫式非揮發性記憶體模組的一垃圾蒐集程序所蒐集的有效資料包括未經壓縮的該第一資料的至少一部分,獲得該至少一部分的該第一資料的一後續資料傳輸資訊,並且判斷該後續資料傳輸資訊是否符合該預定條件;當該後續資料傳輸資訊符合該預定條件時,將該至少一部分的該第一資料壓縮為一第三資料,並且將該第三資料寫入至該可複寫式非揮發性記憶體模組;以及當該後續資料傳輸資訊不符合該預定條件時,不壓縮該至少一部分的該第一資料。
- 如申請專利範圍第1項所述的資料寫入方法,其中將該第一資料壓縮為該第二資料的步驟包括:利用一第一壓縮通道與一第二壓縮通道平行地壓縮一第一部份的該第一資料與一第二部份的該第一資料,以產生該第二資料,其中該第二壓縮通道對於該第二部份的該第一資料的壓縮是基於該第一壓縮通道對於該第一部份的該第一資料的一壓縮結果。
- 如申請專利範圍第1項所述的資料寫入方法,其中將該第一資料壓縮為該第二資料的步驟包括:隨著該第一資料的壓縮而建立一第一字典,其中該資料寫入方法更包括:接收一讀取指令,並且根據該讀取指令從該可複寫式非揮發性記憶體模組中讀取該第二資料;以及 解壓縮該第二資料,並且隨著該第二資料的解壓縮而建立一第二字典,其中該第一字典與該第二字典實質上相同。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以執行以下操作:接收一寫入指令與對應於該寫入指令的一第一資料;獲得該第一資料的一初始資料傳輸資訊,並且判斷該初始資料傳輸資訊是否符合一預定條件;當該初始資料傳輸資訊符合該預定條件時,將該第一資料壓縮為一第二資料,並且將該第二資料寫入至該可複寫式非揮發性記憶體模組;以及當該初始資料傳輸資訊不符合該預定條件時,將未經壓縮的該第一資料寫入至該可複寫式非揮發性記憶體模組。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中獲得該第一資料的該初始資料傳輸資訊的操作包括:壓縮或者掃描至少一部分的該第一資料,以獲得該第一資料 的一壓縮資訊,其中該第一資料的該壓縮資訊包括該第一資料的一壓縮速度之資訊以及該第二資料的一資料流傳輸速度之資訊的至少其中之一;以及根據該第一資料的該壓縮資訊獲得該第一資料的該初始資料傳輸資訊。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中該第一資料的該初始資料傳輸資訊包括該第一資料的一壓縮比例之資訊、該第一資料的一壓縮速度之資訊、該第二資料的一資料流傳輸速度之資訊、該第二資料的一解壓縮速度之資訊、解壓縮後的該第二資料的一資料流傳輸速度之資訊、以及該第一資料是否為一連續資料之資訊的至少其中之一。
- 如申請專利範圍第14項所述的記憶體儲存裝置,其中判斷該初始資料傳輸資訊是否符合該預定條件的操作包括:根據該第一資料的該壓縮比例是否符合一壓縮比例條件、該第一資料的該壓縮速度是否符合一壓縮速度條件、該第二資料的該資料流傳輸速度是否符合一壓縮傳輸速度條件、該第二資料的該解壓縮速度是否符合一解壓縮速度條件、解壓縮後的該第二資料的該資料流傳輸速度是否符合一解壓縮傳輸速度條件、以及該第一資料是否為該連續資料的至少其中之一,來判斷該初始資料傳輸資訊是否符合該預定條件。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該第一資料是否為該連續資料來 決定該壓縮比例條件、該壓縮速度條件、該壓縮傳輸速度條件、該解壓縮速度條件以及該解壓縮傳輸速度條件的至少其中之一。
- 如申請專利範圍第16項所述的記憶體儲存裝置,其中根據該第一資料是否為該連續資料來決定該壓縮比例條件、該壓縮速度條件、該壓縮傳輸速度條件、該解壓縮速度條件以及該解壓縮傳輸速度條件的至少其中之一的操作包括:將該壓縮比例條件、該壓縮速度條件、該解壓縮速度條件及該解壓縮傳輸速度條件的至少其中之一的一門檻值設定為一第一門檻值;以及當該第一資料不是該連續資料時,將該壓縮比例條件、該壓縮速度條件、該解壓縮速度條件及該解壓縮傳輸速度條件的至少其中之一的該門檻值設定為一第二門檻值,其中該第一門檻值高於該第二門檻值。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以執行以下操作:判斷該第二資料的該解壓縮速度是否符合一解壓縮速度門檻值;以及當判定該第二資料的該解壓縮速度符合該解壓縮速度門檻值時,判定該第二資料的該解壓縮速度符合該解壓縮速度條件。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以執行以下操作:根據該第二資料的該解壓縮速度與一預設讀取速度獲得一讀 取速度下降比例;判斷該讀取速度下降比例是否符合一預設速度下降比例;當該讀取速度下降比例符合該預設速度下降比例時,判定該第二資料的該解壓縮速度符合該解壓縮速度條件;以及當該讀取速度下降比例不符合該預設速度下降比例時,判定該第二資料的該解壓縮速度不符合該解壓縮速度條件。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中在將未經壓縮的該第一資料寫入至該可複寫式非揮發性記憶體模組之後,該記憶體控制電路單元更用以執行以下操作:若該可複寫式非揮發性記憶體模組的一垃圾蒐集程序所蒐集的有效資料包括未經壓縮的該第一資料的至少一部分,獲得該至少一部分的該第一資料的一後續資料傳輸資訊,並且判斷該後續資料傳輸資訊是否符合該預定條件;當該後續資料傳輸資訊符合該預定條件時,將該至少一部分的該第一資料壓縮為一第三資料,並且將該第三資料寫入至該可複寫式非揮發性記憶體模組;以及當該後續資料傳輸資訊不符合該預定條件時,不壓縮該至少一部分的該第一資料。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中將該第一資料壓縮為該第二資料的操作包括:利用一第一壓縮通道與一第二壓縮通道平行地壓縮一第一部份的該第一資料與一第二部份的該第一資料,以產生該第二資料, 其中該第二壓縮通道對於該第二部份的該第一資料的壓縮是基於該第一壓縮通道對於該第一部份的該第一資料的一壓縮結果。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中將該第一資料壓縮為該第二資料的操作包括:隨著該第一資料的壓縮而建立一第一字典,其中該記憶體控制電路單元更用以執行以下操作:接收一讀取指令,並且根據該讀取指令從該可複寫式非揮發性記憶體模組中讀取該第二資料;以及解壓縮該第二資料,並且隨著該第二資料的解壓縮而建立一第二字典,其中該第一字典與該第二字典實質上相同。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一壓縮/解壓縮電路;以及一記憶體管理電路,耦接至該主機介面、該記憶體介面及該壓縮/解壓縮電路,其中該記憶體管理電路用以執行以下操作:接收一寫入指令與對應於該寫入指令的一第一資料;獲得該第一資料的一初始資料傳輸資訊,並且判斷 該初始資料傳輸資訊是否符合一預定條件;當該初始資料傳輸資訊符合該預定條件時,控制該壓縮/解壓縮電路將該第一資料壓縮為一第二資料,並且發送一第一指令序列,其中該第一指令序列用以指示該第二資料需被寫入至該可複寫式非揮發性記憶體模組;以及當該初始資料傳輸資訊不符合該預定條件時,發送一第二指令序列,其中該第二指令序列用以指示未經壓縮的該第一資料需被寫入至該可複寫式非揮發性記憶體模組。
- 如申請專利範圍第23項所述的記憶體控制電路單元,其中獲得該第一資料的該初始資料傳輸資訊的操作包括:控制該壓縮/解壓縮電路壓縮或者掃描至少一部分的該第一資料,以獲得該第一資料的一壓縮資訊,其中該第一資料的該壓縮資訊包括該第一資料的一壓縮速度之資訊以及該第二資料的一資料流傳輸速度之資訊的至少其中之一;以及根據該第一資料的該壓縮資訊獲得該第一資料的該初始資料傳輸資訊。
- 如申請專利範圍第23項所述的記憶體控制電路單元,其中該第一資料的該初始資料傳輸資訊包括該第一資料的一壓縮比例之資訊、該第一資料的一壓縮速度之資訊、該第二資料的一資料流傳輸速度之資訊、該第二資料的一解壓縮速度之資訊、解壓縮後的該第二資料的一資料流傳輸速度之資訊、以及該第一資料是否為一連續資料之資訊的至少其中之一。
- 如申請專利範圍第25項所述的記憶體控制電路單元,其中判斷該初始資料傳輸資訊是否符合該預定條件的操作包括:根據該第一資料的該壓縮比例是否符合一壓縮比例條件、該第一資料的該壓縮速度是否符合一壓縮速度條件、該第二資料的該資料流傳輸速度是否符合一壓縮傳輸速度條件、該第二資料的該解壓縮速度是否符合一解壓縮速度條件、解壓縮後的該第二資料的該資料流傳輸速度是否符合一解壓縮傳輸速度條件、以及該第一資料是否為該連續資料的至少其中之一,來判斷該初始資料傳輸資訊是否符合該預定條件。
- 如申請專利範圍第26項所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該第一資料是否為該連續資料來決定該壓縮比例條件、該壓縮速度條件、該壓縮傳輸速度條件、該解壓縮速度條件以及該解壓縮傳輸速度條件的至少其中之一。
- 如申請專利範圍第27項所述的記憶體控制電路單元,其中根據該第一資料是否為該連續資料來決定該壓縮比例條件、該壓縮速度條件、該壓縮傳輸速度條件、該解壓縮速度條件以及該解壓縮傳輸速度條件的至少其中之一的操作包括:當該第一資料是該連續資料時,將該壓縮比例條件、該壓縮速度條件、該解壓縮速度條件及該解壓縮傳輸速度條件的至少其中之一的一門檻值設定為一第一門檻值;以及當該第一資料不是該連續資料時,將該壓縮比例條件、該壓縮速度條件、該解壓縮速度條件及該解壓縮傳輸速度條件的至少 其中之一的該門檻值設定為一第二門檻值,其中該第一門檻值高於該第二門檻值。
- 如申請專利範圍第26項所述的記憶體控制電路單元,其中該記憶體管理電路更用以執行以下操作:判斷該第二資料的該解壓縮速度是否符合一解壓縮速度門檻值;以及當判定該第二資料的該解壓縮速度符合該解壓縮速度門檻值時,判定該第二資料的該解壓縮速度符合該解壓縮速度條件。
- 如申請專利範圍第26項所述的記憶體控制電路單元,其中該記憶體管理電路更用以執行以下操作:根據該第二資料的該解壓縮速度與一預設讀取速度獲得一讀取速度下降比例;判斷該讀取速度下降比例是否符合一預設速度下降比例;當該讀取速度下降比例符合該預設速度下降比例時,判定該第二資料的該解壓縮速度符合該解壓縮速度條件;以及當該讀取速度下降比例不符合該預設速度下降比例時,判定該第二資料的該解壓縮速度不符合該解壓縮速度條件。
- 如申請專利範圍第23項所述的記憶體控制電路單元,其中在發送該第二指令序列之後,該記憶體管理電路更用以執行以下操作:若該可複寫式非揮發性記憶體模組的一垃圾蒐集程序所蒐集的有效資料包括未經壓縮的該第一資料的至少一部分,獲得該至 少一部分的該第一資料的一後續資料傳輸資訊,並且判斷該後續資料傳輸資訊是否符合該預定條件;當該後續資料傳輸資訊符合該預定條件時,控制該壓縮/解壓縮電路將該至少一部分的該第一資料壓縮為一第三資料,並且發送一第三指令序列,其中該第三指令序列用以指示該第三資料需被寫入至該可複寫式非揮發性記憶體模組;以及當該後續資料傳輸資訊不符合該預定條件時,不控制該壓縮/解壓縮電路來壓縮該至少一部分的該第一資料。
- 如申請專利範圍第23項所述的記憶體控制電路單元,其中控制該壓縮/解壓縮電路將該第一資料壓縮為該第二資料的操作包括:利用一第一壓縮通道與一第二壓縮通道平行地壓縮一第一部份的該第一資料與一第二部份的該第一資料,以產生該第二資料,其中該第二壓縮通道對於該第二部份的該第一資料的壓縮是基於該第一壓縮通道對於該第一部份的該第一資料的一壓縮結果。
- 如申請專利範圍第23項所述的記憶體控制電路單元,其中控制該壓縮/解壓縮電路將該第一資料壓縮為該第二資料的操作包括:隨著該第一資料的壓縮而建立一第一字典,其中該記憶體管理電路更用以執行以下操作:接收一讀取指令,並且根據該讀取指令從該可複寫 式非揮發性記憶體模組中讀取該第二資料;以及控制該壓縮/解壓縮電路來解壓縮該第二資料,並且隨著該第二資料的解壓縮而建立一第二字典,其中該第一字典與該第二字典實質上相同。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103105910A TWI537958B (zh) | 2014-02-21 | 2014-02-21 | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 |
US14/253,886 US9690490B2 (en) | 2014-02-21 | 2014-04-16 | Method for writing data, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103105910A TWI537958B (zh) | 2014-02-21 | 2014-02-21 | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201533742A true TW201533742A (zh) | 2015-09-01 |
TWI537958B TWI537958B (zh) | 2016-06-11 |
Family
ID=53882228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103105910A TWI537958B (zh) | 2014-02-21 | 2014-02-21 | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9690490B2 (zh) |
TW (1) | TWI537958B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI730600B (zh) * | 2020-01-21 | 2021-06-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN113220213A (zh) * | 2020-02-05 | 2021-08-06 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
TWI793932B (zh) * | 2021-12-21 | 2023-02-21 | 建興儲存科技股份有限公司 | 固態儲存裝置及其相關的寫入控制方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI540582B (zh) * | 2014-07-10 | 2016-07-01 | 群聯電子股份有限公司 | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 |
US9496894B1 (en) * | 2015-10-21 | 2016-11-15 | GE Lighting Solutions, LLC | System and method for data compression over a communication network |
TWI615710B (zh) * | 2016-12-14 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
KR102619954B1 (ko) * | 2018-03-29 | 2024-01-02 | 삼성전자주식회사 | 데이터를 처리하기 위한 방법 및 이를 지원하는 전자 장치 |
CN110660421B (zh) * | 2018-06-29 | 2021-11-23 | 上海磁宇信息科技有限公司 | 一种带纠错和压缩电路的磁性随机存储器 |
CN111384961B (zh) * | 2018-12-28 | 2022-07-26 | 上海寒武纪信息科技有限公司 | 数据压缩解压装置和数据压缩方法 |
JP2020154525A (ja) * | 2019-03-19 | 2020-09-24 | キオクシア株式会社 | メモリシステムおよび情報処理システム |
US11157188B2 (en) * | 2019-04-24 | 2021-10-26 | EMC IP Holding Company LLC | Detecting data deduplication opportunities using entropy-based distance |
US11061612B2 (en) | 2019-05-20 | 2021-07-13 | Micron Technology, Inc. | Internal communication interface management |
US11669246B2 (en) * | 2019-08-19 | 2023-06-06 | International Business Machines Corporation | Storage allocation enhancement of microservices |
US11429279B2 (en) * | 2020-09-16 | 2022-08-30 | Samsung Electronics Co., Ltd. | Automatic data separation and placement for compressed data in a storage device |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5470709A (en) * | 1977-11-16 | 1979-06-06 | Mitsubishi Electric Corp | Data compression system |
TWI472927B (zh) | 2010-08-12 | 2015-02-11 | Phison Electronics Corp | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 |
US7800519B2 (en) * | 2008-09-30 | 2010-09-21 | Apple Inc. | Method and apparatus for compressing and decompressing data |
JP2011128792A (ja) * | 2009-12-16 | 2011-06-30 | Toshiba Corp | メモリ管理装置 |
US9048862B2 (en) * | 2012-04-11 | 2015-06-02 | Netapp, Inc. | Systems and methods for selecting data compression for storage data in a storage system |
-
2014
- 2014-02-21 TW TW103105910A patent/TWI537958B/zh active
- 2014-04-16 US US14/253,886 patent/US9690490B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI730600B (zh) * | 2020-01-21 | 2021-06-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN113220213A (zh) * | 2020-02-05 | 2021-08-06 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
CN113220213B (zh) * | 2020-02-05 | 2022-11-22 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
TWI793932B (zh) * | 2021-12-21 | 2023-02-21 | 建興儲存科技股份有限公司 | 固態儲存裝置及其相關的寫入控制方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI537958B (zh) | 2016-06-11 |
US20150242122A1 (en) | 2015-08-27 |
US9690490B2 (en) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI537958B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI459197B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI534618B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI579693B (zh) | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
TWI533308B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI681295B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI540582B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI525625B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI554885B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI602061B (zh) | 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI506634B (zh) | 資料存取方法、記憶體控制電路單元及記憶體儲存裝置 | |
TW201705148A (zh) | 映射表存取方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI545432B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI536166B (zh) | 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN104881240A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
TWI641948B (zh) | 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI534814B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI517165B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201608375A (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI533309B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI545576B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW201643722A (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
US9600363B2 (en) | Data accessing method, memory controlling circuit unit and memory storage apparatus |