TWI517165B - 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 - Google Patents
資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI517165B TWI517165B TW103111949A TW103111949A TWI517165B TW I517165 B TWI517165 B TW I517165B TW 103111949 A TW103111949 A TW 103111949A TW 103111949 A TW103111949 A TW 103111949A TW I517165 B TWI517165 B TW I517165B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- data
- units
- area
- logical
- Prior art date
Links
Classifications
-
- 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced 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
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control 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)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種用於可複寫式非揮發性記憶體的資料寫入方法及使用此方法的記憶體控制電路單元與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的記憶體儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
而在可複寫式非揮發性記憶體儲存裝置中,例如,固態硬碟,其控制晶片系統會在當整個固態硬碟用盡冗餘區塊(spare block)後,控制晶片需要快速將資料搬移重組,並做垃圾回收
(garbage collection operation)才能整理出新的冗餘區塊,而垃圾回收的效率除了會影響寫入的速度,也會影響寫入放大(Write Amplification)的倍率和固態硬碟的壽命。
而在檔案寫入的過程中,系統資料(例如,檔案配置表,File Allocation Table,FAT)和使用者資料會交錯寫入至固態硬碟中。主機端在寫入資料的順序是先寫入資料,接著更新FAT。在基於實體程式化單元(Page base)的演算法中,資料寫入快閃記憶體的順序和主機端寫入快閃記憶體的順序相同。而在同一個實體抹除單元中,由於FAT的更新會造成舊有的FAT資料變為無效,如此就會造成同一個實體抹除單元中會存在有許多無效的資料區段。如果這些無效的資料區段佔了10%,就表示在垃圾回收運作時有90%的資料需要搬動,使得垃圾回收的效率變低。基此,如何提昇垃圾回收的效率,為本領域人員努力發展的技術之一。
本發明提供一種資料寫入方法、以及使用此方法之記憶控制電路單元及記憶體儲存裝置,可改善垃圾回收運作的效率,進而延長記憶體儲存裝置的使用壽命。
本發明的一範例實施例提出一種資料寫入方法,用於可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組具有多個實體抹除單元,每個實體抹除單元具有多個實體程式化單元。上述的資料寫入方法包括:從上述可複寫式非揮發性記憶
體模組的這些實體抹除單元中提取一個實體抹除單元作為第一作動實體抹除單元,且從可複寫式非揮發性記憶體模組的這些實體抹除單元中提取另一個實體抹除單元作為第二作動實體抹除單元。接著將配置於可複寫式非揮發性記憶體模組的多個邏輯單元劃分為第一區與至少一個第二區。將一第一資料程式化至該第一作動實體抹除單元,其中該主機系統指示將該第一資料儲存至該些邏輯單元之中的一第一邏輯單元且該第一邏輯單元屬於該第一區。此外,將一第二資料程式化至該第二作動實體抹除單元,其中該主機系統指示將該第二資料儲存至該些邏輯單元之中的一第二邏輯單元且該第二邏輯單元屬於該第二區,以及將一第三資料程式化至該第二作動實體抹除單元,其中該主機系統指示將該第三資料儲存至該些邏輯單元之中的一第三邏輯單元且該第三邏輯單元屬於該第二區。
在本發明的一實施例中,上述將配置於可複寫式非揮發性記憶體模組的多個邏輯單元劃分為第一區與至少一個第二區的步驟包括:根據這些邏輯單元的更新頻率將這些邏輯單元劃分為第一區與至少一個第二區。
在本發明的一實施例中,上述根據這些邏輯單元的更新頻率將這些邏輯單元劃分為第一區與至少一個第二區的步驟包括:記錄每個邏輯單元的寫入次數,並根據這些邏輯單元的這些寫入次數將這些邏輯單元劃分為第一區與至少一個第二區。
在本發明的一實施例中,上述根據這些邏輯單元的這些
寫入次數將這些邏輯單元劃分為第一區與至少一個第二區的步驟包括:根據對應每個邏輯單元的寫入次數,將這些邏輯單元之中至少一個邏輯單元劃分為第一區,其中上述至少一個邏輯單元的寫入次數大於這些邏輯單元之中其他邏輯單元的寫入次數,接著將其他邏輯單元劃分為第二區。
在本發明的一實施例中,上述記錄每個邏輯單元的寫入次數的步驟包括:記錄在預先定義週期內對應每個邏輯單元的寫入次數。
在本發明的一實施例中,上述將配置於可複寫式非揮發性記憶體模組的邏輯單元劃分為第一區與至少一個第二區的步驟包括:將邏輯單元中用以儲存屬於主機系統的作業系統的檔案系統的資料的至少一個邏輯單元劃分為第一區,以及將這些邏輯單元之中非上述至少一個邏輯單元的其他邏輯單元劃分為第二區。
本發明的一範例實施例提出一種資料寫入方法,用於可複寫式非揮發性記憶體模組,而上述可複寫式非揮發性記憶體模組具有多個實體抹除單元,且每個實體抹除單元具有多個實體程式化單元。上述的資料寫入方法包括:從可複寫式非揮發性記憶體模組的實體抹除單元中提取一個實體抹除單元作為第一作動實體抹除單元,以及從可複寫式非揮發性記憶體模組的實體抹除單元中提取另一個實體抹除單元作為第二作動實體抹除單元。當從主機系統接收第一寫入指令與對應第一寫入指令的第一資料時,判斷第一資料是否屬於主機系統的作業系統的檔案系統的資料。
倘若第一資料屬於檔案系統的資料時,將第一資料程式化至第一作動實體抹除單元,以及倘若第一資料非屬於檔案系統的資料時,將第一資料程式化至第二作動實體抹除單元。
本發明的一範例實施例提出一種記憶體控制電路單元,其用於控制可複寫式非揮發性記憶體模組。上述的記憶體控制電路單元包括主機介面、記憶體介面,與記憶體管理電路。主機介面用以耦接至一主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組,而其中可複寫式非揮發性記憶體模組具有多個實體抹除單元,每個實體抹除單元具有多個實體程式化單元。記憶體管理電路耦接至主機介面與記憶體介面,並且用以從可複寫式非揮發性記憶體模組的實體抹除單元中提取一個實體抹除單元作為第一作動實體抹除單元。記憶體管理電路更用以從可複寫式非揮發性記憶體模組的實體抹除單元中提取另一實體抹除單元作為第二作動實體抹除單元。記憶體管理電路更將配置於可複寫式非揮發性記憶體模組的多個邏輯單元劃分為一個第一區與至少一個第二區。記憶體管理電路更用以下達第一指令序列給可複寫式非揮發性記憶體模組以將第一資料程式化至第一作動實體抹除單元,其中主機系統指示將第一資料儲存至上述邏輯單元之中的第一邏輯單元且第一邏輯單元屬於第一區。記憶體管理電路更用以下達第二指令序列給該可複寫式非揮發性記憶體模組以將第二資料程式化至第二作動實體抹除單元,其中主機系統指示將第二資料儲存至上述邏輯單元之中的第二邏輯單元且第二邏輯單元屬於
第二區。其中記憶體管理電路更用以下達第三指令序列給可複寫式非揮發性記憶體模組以將第三資料程式化至第二作動實體抹除單元,其中主機系統指示將第三資料儲存至上述邏輯單元之中的第三邏輯單元且第三邏輯單元屬於第二區。
在本發明的一實施例中,在上述將配置於可複寫式非揮發性記憶體模組的多個邏輯單元劃分為第一區與至少一個第二區的運作中包括:記憶體管理電路用以根據這些邏輯單元的更新頻率將這些邏輯單元劃分為第一區與至少一個第二區。
在本發明的一實施例中,在上述根據這些邏輯單元的更新頻率將這些邏輯單元劃分為第一區與至少一個第二區的運作中包括:記憶體管理電路用以記錄每個邏輯單元的寫入次數,以及根據這些邏輯單元的寫入次數將這些邏輯單元劃分為第一區與至少一個第二區。
在本發明的一實施例中,在上述根據這些邏輯單元的寫入次數將這些邏輯單元劃分為第一區與至少一個第二區的運作中包括:記憶體管理電路用以根據對應每個邏輯單元的寫入次數,將這些邏輯單元之中至少一個邏輯單元劃分為第一區,其中至少一個邏輯單元的寫入次數大於這些邏輯單元之中其他邏輯單元的寫入次數,其中記憶體管理電路更用以將這些其他邏輯單元劃分為第二區。
在本發明的一實施例中,在上述記錄每個邏輯單元的寫入次數的運作中包括:記憶體管理電路用以記錄在預先定義週期
內對應每個邏輯單元的寫入次數。
在本發明的一實施例中,在上述將配置於可複寫式非揮發性記憶體模組的多個邏輯單元劃分為第一區與至少一個第二區的運作中包括:記憶體管理電路用以將這些邏輯單元中用以儲存屬於主機系統的作業系統的檔案系統的資料的至少一個邏輯單元劃分為第一區,以及記憶體管理電路更用以將這些邏輯單元之中非上述至少一個邏輯單元的其他邏輯單元劃分為第二區。
本發明的一範例實施例提出一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組。上述記憶體控制電路單元包括主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組,而其中上述可複寫式非揮發性記憶體模組具有多個實體抹除單元,每個實體抹除單元具有多個實體程式化單元。記憶體管理電路耦接至主機介面與記憶體介面,並且用以從可複寫式非揮發性記憶體模組的這些實體抹除單元中提取一個實體抹除單元作為第一作動實體抹除單元,以及從可複寫式非揮發性記憶體模組的這些實體抹除單元中提取另一個實體抹除單元作為第二作動實體抹除單元。記憶體管理電路更用以從主機系統接收第一寫入指令與對應第一寫入指令的第一資料,並判斷第一資料是否屬於主機系統的作業系統的檔案系統的資料。倘若第一資料屬於檔案系統的資料時,記憶體管理電路更用以下達第一指令序列給該可複寫式非揮發性記憶體模組以將第一資料程式化至第一作動實
體抹除單元,以及倘若第一資料非屬於檔案系統的資料時,記憶體管理電路更用以下達第二指令序列給該可複寫式非揮發性記憶體模組以將第一資料程式化至第二作動實體抹除單元。
本發明的一範例實施例提出一種記憶體儲存裝置,包括連接介面單元、可複寫式非揮發性記憶體模組,以及記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組具有多個實體抹除單元,每個實體抹除單元具有多個實體程式化單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組,並且用以從可複寫式非揮發性記憶體模組的這些實體抹除單元中提取一個實體抹除單元作為第一作動實體抹除單元,以及從可複寫式非揮發性記憶體模組的這些實體抹除單元中提取另一個實體抹除單元作為第二作動實體抹除單元。記憶體控制電路單元更用以將配置於可複寫式非揮發性記憶體模組的多個邏輯單元劃分為第一區與至少一個第二區。記憶體控制電路單元更用以將一第一資料程式化至該第一作動實體抹除單元,其中該主機系統指示將該第一資料儲存至該些邏輯單元之中的一第一邏輯單元且該第一邏輯單元屬於該第一區。另外,記憶體控制電路單元更用以將一第二資料程式化至該第二作動實體抹除單元,其中該主機系統指示將該第二資料儲存至該些邏輯單元之中的一第二邏輯單元且該第二邏輯單元屬於該第二區,以及記憶體控制電路單元更用以將一第三資料程式化至該第二作動實體抹除單元,其中該主機系統指示將該第三資料儲存至該些邏
輯單元之中的一第三邏輯單元且該第三邏輯單元屬於該第二區。
在本發明的一實施例中,在上述將配置於可複寫式非揮發性記憶體模組的這些邏輯單元劃分為第一區與至少一個第二區的運作中包括:記憶體控制電路單元用以根據這些邏輯單元的更新頻率將這些邏輯單元劃分為第一區與至少一個第二區。
在本發明的一實施例中,在上述根據這些邏輯單元的更新頻率將這些邏輯單元劃分為第一區與至少一個第二區的運作中包括:記憶體控制電路單元用以記錄每個邏輯單元的寫入次數,以及根據這些邏輯單元的寫入次數將這些邏輯單元劃分為第一區與至少一個第二區。
在本發明的一實施例中,在上述根據這些邏輯單元的寫入次數將這些邏輯單元劃分為第一區與至少一個第二區的運作中包括:記憶體控制電路單元用以根據對應每個邏輯單元的寫入次數,將這些邏輯單元之中至少一個邏輯單元劃分為第一區,其中上述至少一個邏輯單元的寫入次數大於這些邏輯單元之中其他邏輯單元的寫入次數。記憶體控制電路單元更用以將這些其他邏輯單元劃分為第二區。
在本發明的一實施例中,在上述記錄每個邏輯單元的寫入次數的運作中包括:記憶體控制電路單元用以記錄在預先定義週期內對應每個邏輯單元的寫入次數。
在本發明的一實施例中,在上述將配置於可複寫式非揮發性記憶體模組的這些邏輯單元劃分為第一區與至少一個第二區
的運作中包括:記憶體控制電路單元用以將這些邏輯單元中用以儲存屬於主機系統的作業系統的檔案系統的資料的至少一個邏輯單元劃分為第一區,以及將這些邏輯單元之中非上述至少一個邏輯單元的其他邏輯單元劃分為第二區。
本發明的一範例實施例提出一種記憶體儲存裝置,包括連接介面單元、可複寫式非揮發性記憶體模組與記憶體控制電路單元。連接介面單元用以耦接至一主機系統。可複寫式非揮發性記憶體模組具有多個實體抹除單元,每個實體抹除單元具有多個實體程式化單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組,並且用以從可複寫式非揮發性記憶體模組的這些實體抹除單元中提取一個實體抹除單元作為第一作動實體抹除單元,以及從可複寫式非揮發性記憶體模組的這些實體抹除單元中提取另一個實體抹除單元作為第二作動實體抹除單元。記憶體控制電路單元更用以從主機系統接收第一寫入指令與對應第一寫入指令的第一資料。接著,記憶體控制電路單元更用以判斷第一資料是否屬於主機系統的作業系統的檔案系統的資料。倘若第一資料屬於檔案系統的資料時,記憶體控制電路單元更用以將第一資料程式化至第一作動實體抹除單元,以及倘若第一資料非屬於檔案系統的資料時,記憶體控制電路單元更用以將第一資料程式化至第二作動實體抹除單元。
基於上述,本發明概念可以使更新頻率較高的資料,集中被儲存於實體抹除單元中,以使此實體抹除單元的無效資料的
比率提高,以減少對此實體抹除單元執行垃圾回收運作時,所需要搬移的資料量,並節省執行垃圾回收運作的時間。同時,本發明更可以減少需要執行垃圾回收運作的次數,已達到增進垃圾回收運作的效率的效果,進而減少了記憶體裝置的寫入放大倍率,並延長記憶體裝置的使用壽命。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧錯誤檢查與校正電路
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧資料區
504‧‧‧閒置區
506‧‧‧系統區
508‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
UD1‧‧‧第一資料
UD2‧‧‧第二資料
UD3‧‧‧第三資料
S1201、S1203、S1205、S1207‧‧‧資料寫入方法的步驟
S1301、S1303、S1305、S1307‧‧‧資料寫入方法的步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
圖6與圖7是根據第一範例實施例所繪示之管理實體區塊的範例示意圖。
圖8~9是根據本範例實施例所繪示之寫入資料於第一作動實
體抹除單元的範例。
圖10~11是根據本範例實施例所繪示之寫入資料於第二作動實體抹除單元的範例。
圖12為根據本發明的第一範例實施例所繪示之資料寫入的流程圖。
圖13為根據本發明的第三範例實施例所繪示之資料寫入的流程圖。
[第一範例實施例]
圖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)介面標準、記憶棒(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個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組,以下稱MLC NAND型快閃記憶體模組),然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single
Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、三階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路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會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖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的實體抹除單元,其中每一邏輯單元具有多個邏輯子單元以映射對應之實體抹除單元的實體程式化單元。並且,當主機系統1000欲寫入資料至邏輯單元或更新儲存於邏輯單元中的資料時,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個實體抹除單元來寫入資料,以輪替資料區502的實體抹除單元。在
本範例實施例中,邏輯子單元可以是邏輯頁面或邏輯扇區。
為了識別每個邏輯單元的資料被儲存在那個實體抹除單元,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會記錄邏輯單元與實體抹除單元之間的映射。並且,當主機系統1000欲在邏輯子單元中存取資料時,記憶體控制電路單元104(或記憶體管理電路202)會確認此邏輯子單元所屬的邏輯單元,並且對可複寫式非揮發性記憶體模組106下達對應的指令序列以在此邏輯單元所映射的實體抹除單元中來存取資料。例如,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會在可複寫式非揮發性記憶體模組106中儲存邏輯轉實體位址映射表來記錄每一邏輯單元所映射的實體抹除單元,並且當欲存取資料時記憶體控制電路單元104(或記憶體管理電路202)會將邏輯轉實體位址映射表載入至緩衝記憶體208來維護。
如上所述,在本範例實施例中,記憶體儲存裝置100的可複寫式非揮發性記憶體模組106是以實體程式化單元為基礎來進行管理,因此,在執行寫入指令時,不管目前資料是要寫入至那個邏輯單元的邏輯子單元,記憶體控制電路單元104(或記憶體管理電路202)皆會以一個實體程式化單元接續一個實體程式化單元的方式來寫入資料。具體來說,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個空的實體抹除單元作為目前使用之實體抹除單元(以下稱為作動實體抹除單元)來寫入資料。並且,當此目前使用之實體抹除單元已被寫滿時,記
憶體控制電路單元104(或記憶體管理電路202)會再從閒置區504中提取另一個空的實體抹除單元作為作動實體抹除單元,以繼續寫入對應來自於主機系統1000之寫入指令的資料。特別是,為了避免閒置區504的實體抹除單元被耗盡,當記憶體控制電路單元104(或記憶體管理電路202)欲從閒置區504中提取實體抹除單元且閒置區504的實體抹除單元的數目下降到所設定之垃圾回收門檻值時,記憶體控制電路單元104(或記憶體管理電路202)會先執行資料合併運作,來使資料區502的至少一個實體抹除單元中的資料成為無效資料,並且將資料區502中所儲存之資料皆為無效資料之實體抹除單元關聯回閒置區504,以致於閒置區504的實體抹除單元的數目大於所設定之垃圾回收門檻值。例如,在執行資料合併運作時,記憶體控制電路單元104(或記憶體管理電路202)至少需使用一個空的實體抹除單元,因此,垃圾回收門檻值至少會被設定為大於1的數值。
特別是,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個實體抹除單元(以下稱第一作動實體抹除單元),以及從閒置區504中提取另一實體抹除單元(以下稱第二作動實體抹除單元),其中第一作動實體抹除單元會用來儲存比較常被更新的資料。具體來說,被儲存於第一作動實體抹除單元中的資料會比較常被更新,而使第一作動實體抹除單元中的無效資料所佔的比率會大於第二作動實體抹除單元中的無效資料的比率。舉例來說,記憶體控制電路單元104(或
記憶體管理電路202)提取閒置區504的實體抹除單元410(F)作為第一作動實體抹除單元,且提取閒置區504的實體抹除單元410(F+1)作為第二作動實體抹除單元。
值得一提的是,儘管在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)是從閒置區504中提取實體抹除單元作為第一作動實體抹除單元與第二作動實體抹除單元,然而本發明不限於此。例如,而在另一實施例中,記憶體控制電路單元104(或記憶體管理電路202)更可以將閒置區中的部分實體抹除單元劃分為第一作動區以及第二作動區,並且使用第一作動區的實體抹除單元作為第一作動實體抹除單元,且使用第二作動區的實體抹除單元作為第二作動實體抹除單元。而在此另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)更可以依據每個實體抹除單元的抹除次數來劃分第一作動區和第二作動區,以使在閒置區中的第一作動區中的實體抹除單元,其抹除次數會小於閒置區中的第二作動區中的實體抹除單元的抹除次數,進而達到平均磨損(wear-leveling)的效果。
在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會將配置於可複寫式非揮發性記憶體模組106的多個邏輯單元LBA(0)~LBA(H),劃分為許多邏輯區域LZ(0)~LZ(M)。而在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)更會根據每個邏輯單元的寫入次數來分配其所屬的邏輯區域。舉例來說,假設在邏輯區域LZ(0)中的邏輯單元
的寫入次數,會大於在邏輯區域LZ(1)中的邏輯單元的寫入次數,而在邏輯區域LZ(1)中的邏輯單元的寫入次數,會大於在邏輯區域LZ(2)中的邏輯單元的寫入次數,以此類推…。如此一來,劃分在邏輯區域LZ(0)中的每個邏輯單元,其各自對應的寫入次數會大於在邏輯區域LZ(1)~LZ(M)中的每個邏輯單元的所對應的寫入次數。值得一提的是,上述所劃分之邏輯區域LZ(0)~LZ(M),其各自所含的邏輯單元數量可以是相同或是不同,本發明不限於此。也就是說,以上述的例子,在邏輯區域LZ(0)~LZ(M)中的邏輯單元為邏輯單元LBA(0)~LBA(H)中,依照寫入次數由大到小排序的話,取前面一個預定個數的邏輯單元來劃分到邏輯區域LZ(0)中。或是,在其他範例實施例中,LZ(0)的邏輯單元個數可以與其他邏輯區域相同或是不同,劃分到LZ(0)的邏輯單元個數的值,也可依照廠商設定或是其他方式自行設定,本發明不限於此。
而在本範例實施例中,於上述例子中,由於邏輯區域LZ(0)所含之邏輯單元的寫入次數皆大於其他邏輯區域所含之邏輯單元的寫入次數,因此,記憶體控制電路單元104(或記憶體管理電路202)會將邏輯區域LZ(0)劃分為第一區,而另外將非第一區的邏輯區域(即,邏輯區域LZ(1)~LZ(M))劃分為第二區。而記憶體控制電路單元104(或記憶體管理電路202)會將欲儲存於第一區的邏輯單元的資料,都寫入至上述的第一作動實體抹除單元410(F)中,而將欲儲存於第二區的邏輯單元的資料,都寫入至上述的第二作動實體抹除單元410(F+1)中。值得一提的是,當第一作動實
體抹除單元410(F)或是第二作動實體抹除單元410(F+1)已經寫滿資料時,記憶體控制電路單元104(或記憶體管理電路202)會再從閒置區504中提取另一實體抹除單元作為另一第一作動實體抹除單元或是另一第二作動實體抹除單元,以繼續寫入資料。
舉例來說,假設邏輯單元LBA(0)、LBA(Z)是屬於第一區的邏輯單元,邏輯單元LBA(Z+1)屬於第二區的邏輯單元。當記憶體控制電路單元104(或記憶體管理電路202)從主機系統1000接收到一個寫入指令(以下稱第一寫入指令)與對應第一寫入指令的一筆資料(以下稱第一資料),同時主機系統1000透過第一寫入指令,指示記憶體控制電路單元104(或記憶體管理電路202)將此第一資料儲存至配置於記憶體儲存裝置100的邏輯單元中的其中一個邏輯單元(例如,邏輯單元LBA(0),以下稱第一邏輯單元LBA(0))時,記憶體控制電路單元104(或記憶體管理電路202)會先辨識第一邏輯單元LBA(0)是屬於第一區的邏輯單元並且將第一資料寫入到第一作動實體抹除單元410(F)的實體程式化單元中,並將第一邏輯單元LBA(0)中對應第一資料的邏輯子單元映射到第一作動實體抹除單元410(F)中儲存第一資料的實體程式化單元。
圖8~9是根據本範例實施例所繪示之寫入資料於第一作動實體抹除單元的範例。
請參照圖8,為方便說明,在此假設資料區502初始地未有映射邏輯單元的實體抹除單元(即,記憶體儲存裝置100於開卡後尚未寫入過使用者資料),閒置區504具有實體抹除單元
410(F)~410(S-1),每一實體抹除單元具有3個實體程式化單元,欲寫入至每一實體抹除單元的資料必須依照實體程式化單元的順序來被寫入,且每一個邏輯子單元的容量等於1實體程式化單元的容量。並且,記憶體控制電路單元104(或記憶體管理電路202)識別邏輯單元LBA(0)是屬於第一區的邏輯單元,且識別邏輯單元LBA(Z+1)、邏輯單元LBA(Z+2)是屬於第二區的邏輯單元。
請參照圖9,如上述的例子,記憶體控制電路單元104(或記憶體管理電路202)從主機系統1000接收到第一寫入指令,以及對應第一寫入指令的第一資料UD1。同時主機系統1000透過第一寫入指令,指示記憶體控制電路單元104(或記憶體管理電路202)將此第一資料UD1儲存至配置於記憶體儲存裝置100的邏輯單元中的第一邏輯單元LBA(0)中,並且第一資料UD1是屬於第一邏輯單元LBA(0)的第1個邏輯子單元。此時,記憶體控制電路單元104(或記憶體管理電路202)會先判斷第一邏輯單元LBA(0)是否屬於第一區的邏輯單元。在此例子中,由於第一邏輯單元LBA(0)屬於第一區,且在資料區502中沒有第一作動實體抹除單元存在。因此,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個實體抹除單元410(F)作為第一作動實體抹除單元,並將第一資料UD1寫入到第一作動實體抹除單元410(F)中的第0個實體程式化單元,並將第一邏輯單元LBA(0)中對應第一資料UD1的第1個邏輯子單元映射到第一作動實體抹除單元410(F)中儲存第一資料UD1的第0個實體程式化單元。
圖10~11是根據本範例實施例所繪示之寫入資料於第二作動實體抹除單元的範例。
請參照圖10,當記憶體控制電路單元104(或記憶體管理電路202)從主機系統1000接收到另一個寫入指令(以下稱第二寫入指令),以及對應第二寫入指令的一筆資料(以下稱第二資料UD2),同時主機系統1000透過第二寫入指令,指示記憶體控制電路單元104(或記憶體管理電路202)將此第二資料UD2儲存至配置於記憶體儲存裝置100的邏輯單元中的其中一個邏輯單元(例如,邏輯單元LBA(Z+1),以下稱第二邏輯單元LBA(Z+1))中,並且第二資料UD2是屬於第二邏輯單元LBA(Z+1)的第0個邏輯子單元。此時,記憶體控制電路單元104(或記憶體管理電路202)會先判斷第二邏輯單元LBA(Z+1)是否屬於第一區的邏輯單元。在此例子中,由於第二邏輯單元LBA(Z+1)屬於第二區,且在資料區502中沒有第二作動實體抹除單元存在。因此,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個實體抹除單元410(F+1)作為第二作動實體抹除單元,並將第二資料UD2寫入到第二作動實體抹除單元410(F+1)的第0個實體程式化單元中。接著,記憶體控制電路單元104(或記憶體管理電路202)會將第二邏輯單元LBA(Z+1)中對應第二資料UD2的第0個邏輯子單元映射到第二作動實體抹除單元410(F+1)中儲存第二資料UD2的第0個實體程式化單元。
請參照圖11,如上述的例子,記憶體控制電路單元104(或
記憶體管理電路202)從主機系統1000接收到第三寫入指令,以及對應第三寫入指令的第三資料UD3。同時主機系統1000透過第三寫入指令,指示記憶體控制電路單元104(或記憶體管理電路202)將此第三資料UD3儲存至配置於記憶體儲存裝置100的邏輯單元中的第三邏輯單元LBA(Z+2)中,並且第三資料UD3是屬於第三邏輯單元LBA(Z+2)的第1個邏輯子單元。此時,記憶體控制電路單元104(或記憶體管理電路202)會先判斷第三邏輯單元LBA(Z+2)是否屬於第一區的邏輯單元。在此例子中,由於第三邏輯單元LBA(Z+2)屬於第二區且位於資料區中的第二作動實體抹除單元410(F+1)有足夠空間(兩個空白的實體程式化單元)以寫入第三資料UD3(一個邏輯子單元的大小),故,記憶體控制電路單元104(或記憶體管理電路202)會直接將第三資料UD3寫入到第二作動實體抹除單元410(F+1)中。而,由於第二作動實體抹除單元410(F+1)的第0個實體程式化單元已經儲存了第二資料UD2,故,記憶體控制電路單元104(或記憶體管理電路202)會接著選擇已寫入第二資料UD2的實體程式化單元的下一個實體程式化單元來寫入第三資料UD3。例如,在圖11中,第二作動實體抹除單元的第1個實體程式化單元會被用來寫入第三資料UD3。接著,記憶體控制電路單元104(或記憶體管理電路202)會將第三邏輯單元LBA(Z+2)中對應第三資料UD3的第1個邏輯子單元映射到第二作動實體抹除單元410(F+1)中儲存第三資料UD3的第1個實體程式化單元。
值得一提的是,在其他範例實施例中,由於邏輯區域LZ(0)
的邏輯單元寫入次數會大於邏輯區域LZ(1)、邏輯區域LZ(1)的邏輯單元寫入次數會大於邏輯區域LZ(2)的,以此類推..,因此,記憶體控制電路單元104(或記憶體管理電路202)更可以將LZ(0)與LZ(1)劃分到第一區,或是將依照LZ(0)~LZ(M)的順序,將前面一個預定個數的邏輯區域劃分到第一區。在另一範例實施例中,更可以先將多個邏輯單元LBA(0)~LBA(H)依照寫入次數由大到小做排序,取前面一個預定個數的邏輯單元來劃分到第一區。以上的例子僅為說明之用,用以說明本發明中劃分邏輯單元中,寫入次數較多的一定數量的邏輯單元到第一區,以做後續的處理的概念,不用於限制本發明。
此外,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會在一個預先定義週期內,記錄LBA(0)~LBA(H)的每個邏輯單元的寫入次數。也就是說,記憶體控制電路單元104(或記憶體管理電路202)會從此預先定義週期開始時,記錄每個邏輯單元的寫入次數,當此預先定義週期結束時,將所記錄的每個邏輯單元的寫入次數歸零,並於下一個預先定義週期開始時,重新記錄每個邏輯單元的寫入次數。在本範例實施例中,此預先定義週期可以為一段固定的使用時間,或是為從主機系統1000所接收到寫入指令的次數。
舉例來說,倘若此預先定義週期為一段固定的使用時間,當記憶體儲存裝置於使用時,記憶體控制電路單元104(或記憶體管理電路202)便開始記錄每個邏輯單元的寫入次數。當使用
此記憶體儲存裝置達到一個預先定義的時間時,例如,3600秒,記憶體控制電路單元104(或記憶體管理電路202)便將之前所記錄的每個邏輯單元的寫入次數歸零,並重新記錄下個3600秒內的每個邏輯單元的寫入次數。
-而在另一個預先定義週期的例子中,此預先定義週期為對應從主機系統1000所接收到寫入指令的次數的一個預先定義門檻值,並且記憶體控制電路單元104(或記憶體管理電路202)會在每接收到一定數量之寫入指令的期間內,來記錄每個邏輯單元的寫入次數。具體來說,記憶體控制電路單元104(或記憶體管理電路202)從主機系統1000接收到寫入指令時,記憶體控制電路單元104(或記憶體管理電路202)便開始記錄每個邏輯單元的寫入次數。所接收到的寫入指令的次數到達此預先定義門檻值時,例如,一萬次,記憶體控制電路單元104(或記憶體管理電路202)便將之前所記錄的每個邏輯單元的寫入次數歸零,並重新記錄下個預先定義週期內的每個邏輯單元的寫入次數。
此外,在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)更可以先記錄所記錄過的每個預先定義時間間隔內的寫入次數以及每個預先定義時間間隔結束記錄的時間/順序,依照結束記錄的時間/順序,由最新往較舊的順序,加總多個所記錄過的預先定義時間間隔內的寫入次數。而在此加總所得到的值,可用以代表一個近期的每個邏輯單元的更新頻率。舉例來說,假設第一邏輯單元,每隔3600秒的預先定義時間間隔,便記
錄一次每個預先定義時間間隔內的寫入次數的總次數。例如,在第一次的預先定義時間間隔內,總共寫入了100次;第二次的預先定義時間間隔內,總共寫入了50次;第三次的預先定義時間間隔內,總共寫入了60次。而記憶體控制電路單元104(或記憶體管理電路202)被設定只取最新的兩個預先定義時間間隔的寫入次數的和,也就是110次(50加上60)來作為此邏輯單元一個預先定義週期的寫入次數。而在此另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)更可以僅記錄較新的一個預先定義數目的預先定義時間間隔的寫入次數,達到上述例子的效用。
值得一提的是,以上所舉的例子,僅為說明在本發明中,記憶體控制電路單元104(或記憶體管理電路202)會去記錄近期一段使用時間或是使用次數內的每個邏輯單元的寫入次數,以符合最近此記憶體裝置的使用習慣,達到將常更新的資料集中寫入到一個實體抹除單元的效果,而增進此記憶體裝置的垃圾回收的效率,本發明不限於此。
圖12為根據本發明的第一範例實施例所繪示之資料寫入的流程圖。
請參照圖12,在步驟S1201中,記憶體控制電路單元104(或記憶體管理電路202)從主機系統1000接收一寫入指令(以下稱為第一寫入指令)以及對應第一寫入指令的一筆寫入資料(以下稱第一資料)與一邏輯單元(以下稱第一邏輯單元)。接著,在步驟S1203中,記憶體控制電路單元104(或記憶體管理電路202)
會判斷第一邏輯單元是否屬於第一區。
倘若在步驟S1203中,記憶體控制電路單元104(或記憶體管理電路202)判斷第一邏輯單元屬於第一區時,則在步驟S1205中,記憶體控制電路單元104(或記憶體管理電路202)會將第一資料程式化至第一作動實體抹除單元中。此外,倘若在步驟S1203中,記憶體控制電路單元104(或記憶體管理電路202)判斷第一邏輯單元不屬於第一區時,則在步驟S1207中,記憶體控制電路單元104(或記憶體管理電路202)會將第一資料程式化至第二作動實體抹除單元中。
[第二範例實施例]
第二範例實施例在硬體架構上相似於第一範例實施例,而第二範例實施例與第一範例實施例不同的地方在於,第一範例實施例是先判斷所接收資料所對應的邏輯單元其所屬的邏輯區域是否屬於第一區,來決定將所接收的資料儲存到第一作動實體抹除單元或是第二作動實體抹除單元中。而第二範例實施例是先依據所接收到的欲寫入資料的資料類型,來判斷所接收資料所對應的邏輯單元其所屬的邏輯區域是否屬於第一區,再決定將所接收的資料儲存到第一作動實體抹除單元或是第二作動實體抹除單元中。以下將利用第一範例實施例的元件編號詳細說明此第二範例實施例的不同之處。
如上所述,記憶體控制電路單元104(或記憶體管理電路202)會將配置於可複寫式非揮發性記憶體模組的多個邏輯單元
LBA(0)~LBA(H),劃分為許多邏輯區域LZ(0)~LZ(M)。而在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)更會根據每個寫入資料的資料型態來分配此資料所對應的邏輯單元所屬的邏輯區域。也就是說,當配置於可複寫式非揮發性記憶體模組的多個邏輯單元LBA(0)~LBA(H)其中一個邏輯單元用以儲存屬於主機系統1000的作業系統的檔案系統的資料時,記憶體控制電路單元104(或記憶體管理電路202)會將此邏輯單元劃分到第一區,並且將不用以儲存屬於主機系統1000的作業系統的檔案系統的資料的邏輯單元劃分到第二區。
舉例來說,假設配置於可複寫式非揮發性記憶體模組的多個邏輯單元中的邏輯單元LBA(0)欲儲存屬於主機系統1000的作業系統的檔案系統的資料時,記憶體控制電路單元104(或記憶體管理電路202)會將邏輯單元LBA(0)劃分到第一區的邏輯區域中,例如,上述例子中的劃分到第一區的邏輯區域LZ(0)。另外,當配置於可複寫式非揮發性記憶體模組的多個邏輯單元中的邏輯單元LBA(Z+1)欲儲存不屬於主機系統1000的作業系統的檔案系統的資料,例如,使用者資料時,記憶體控制電路單元104(或記憶體管理電路202)會將邏輯單元LBA(Z+1)劃分到屬於第二區的邏輯區域LZ(1)~LZ(M)中的其中一個邏輯區域,例如,邏輯區域LZ(1)中。接著,記憶體控制電路單元104(或記憶體管理電路202)會再依據此資料所對應的邏輯單元是否屬於第一區,來將此資料寫入至第一作動實體抹除單元或是第二作動實體抹除單元中。
[第三範例實施例]
第三範例實施例在硬體架構上相似於第一、第二範例實施例,而第三範例實施例與第一、第二範例實施例不同的地方在於,第三範例實施例是判斷所接收資料的類型,以決定將所接收的欲儲存資料程式化到第一作動實體抹除單元或是第二作動實體抹除單元中。以下將利用第一範例實施例的元件編號詳細說明此第三範例實施例的不同之處。
在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會根據所接收的寫入資料的資料類型,來決定是否將此資料寫入第一作動實體抹除單元或是第二作動實體抹除單元中。具體來說,當所接收到的寫入資料是屬於主機系統1000的作業系統的檔案系統的資料,則記憶體控制電路單元104(或記憶體管理電路202)會直接將此寫入資料寫入第一作動實體抹除單元中。換句話說,當所接收到的寫入資料不是屬於主機系統1000的作業系統的檔案系統的資料,則記憶體控制電路單元104(或記憶體管理電路202)會直接將此寫入資料寫入第二作動實體抹除單元中。
舉例來說,當記憶體控制電路單元104(或記憶體管理電路202)從主機系統1000接收到一個寫入指令(以下稱第一寫入指令),以及對應第一寫入指令的一筆資料(以下稱第一資料)。此時,記憶體控制電路單元104(或記憶體管理電路202)會先判斷第一資料的資料類型。當記憶體控制電路單元104(或記憶體管理電
路202)辨識此第一資料是屬於主機系統1000的作業系統的檔案系統的資料時,則記憶體控制電路單元104(或記憶體管理電路202)會將第一資料寫入到第一作動實體抹除單元410(F)中的多個實體程式化單元中,並將對應第一資料的多個邏輯子單元映射到第一作動實體抹除單元410(F)中儲存第一資料的多個實體程式化單元。換句話說,當記憶體控制電路單元104(或記憶體管理電路202)辨識此第一資料不屬於主機系統1000的作業系統的檔案系統的資料時,則記憶體控制電路單元104(或記憶體管理電路202)會將第一資料寫入到第二作動實體抹除單元410(F+1)中的多個實體程式化單元中,並將對應第一資料的多個邏輯子單元映射到第二作動實體抹除單元410(F+1)中儲存第一資料的多個實體程式化單元。
在本範例實施例中,倘若所接收的第一資料為屬於檔案配置表的資料時,則記憶體控制電路單元104(或記憶體管理電路202)會辨識此寫入資料是屬於主機系統1000的作業系統的檔案系統的資料。
而在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會根據所接收的寫入資料所對應的邏輯子單元數量來辨識此寫入資料是否屬於主機系統1000的作業系統的檔案系統的資料。具體來說,當所接收到的寫入資料其所對應的邏輯子單元數量小於一邏輯子單元數目門檻值時,記憶體控制電路單元104(或記憶體管理電路202)會辨識此寫入資料是屬於主機系統1000的作業系統的檔案系統的資料。換句話說,當所接收到的寫
入資料其所對應的邏輯子單元數量非小於一邏輯子單元數目門檻值時,記憶體控制電路單元104(或記憶體管理電路202)會辨識此寫入資料不屬於主機系統1000的作業系統的檔案系統的資料。
此外,在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)更會根據所接收的寫入資料其所對應的邏輯子單元位址來辨識此寫入資料是否屬於主機系統1000的作業系統的檔案系統的資料。具體來說,當所接收到的寫入資料其所對應的邏輯子單元位址位於此些邏輯子單元所屬的邏輯單元中前面的一個預先定義區段內時,記憶體控制電路單元104(或記憶體管理電路202)會辨識此寫入資料是屬於主機系統1000的作業系統的檔案系統的資料。換句話說,當所接收到的寫入資料其所對應的邏輯子單元位址不位於此些邏輯子單元所屬的邏輯單元中前面的一個預先定義區段內時,記憶體控制電路單元104(或記憶體管理電路202)會辨識此寫入資料不屬於主機系統1000的作業系統的檔案系統的資料。
圖13為根據本發明的第三範例實施例所繪示之資料寫入的流程圖。
請參照圖13,在步驟S1301中,記憶體控制電路單元104(或記憶體管理電路202)從主機系統1000接收一筆寫入資料(以下稱第一資料)。接著,在步驟S1303中,記憶體控制電路單元104(或記憶體管理電路202)會判斷此第一資料是否屬於主機系統1000的檔案系統的資料。
倘若在步驟S1303中,記憶體控制電路單元104(或記憶體管理電路202)辨識第一資料屬於主機系統1000的檔案系統的資料時,則在步驟S1305中,記憶體控制電路單元104(或記憶體管理電路202)會將第一資料程式化至第一作動實體抹除單元中。此外,倘若在步驟S1303中,記憶體控制電路單元104(或記憶體管理電路202)辨識第一資料不屬於主機系統1000的檔案系統的資料時,則在步驟S1307中,記憶體控制電路單元104(或記憶體管理電路202)會將第一資料程式化至第二作動實體抹除單元中。
綜上所述,於本發明可以使對應寫入次數高的邏輯單元的資料,集中儲存在第一作動實體抹除單元中,而此對應寫入次數高的邏輯單元的資料的更新頻率,也會比較高。本發明也可以使屬於主機系統的作業系統的檔案系統的資料,集中儲存在第一作動實體抹除單元中,如此一來,由於檔案系統的資料其被更新的頻率比較高,因此儲存於第一作動實體抹除單元的檔案系統的資料,其被更新的機率也會比較高。如此一來,儲存於第一作動實體抹除單元的資料,其為無效資料的比率較高。基此,在本發明中,於對第一作動實體抹除單元進行垃圾回收操作時,所要進行的有效資料的搬移量會減少。同時在本發明中,被儲存於第二作動實體抹除單元的資料,由於其被更新的頻率比較低,因此在第二作動實體抹除單元的無效資料的比率會較低,會降低第二實體抹除單元進行垃圾回收的機會。故,本發明概念可以減少執行垃圾回收運作時所需要搬移的資料量,並節省執行垃圾回收運作
的時間。本發明更可以減少需要執行垃圾回收運作的次數,已達到增進垃圾回收運作的效率的效果,進而減少了記憶體裝置的寫入放大倍率,並延長記憶體裝置的使用壽命。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S1201、S1203、S1205、S1207、S1209‧‧‧資料寫入方法的步驟
Claims (21)
- 一種資料寫入方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元,該資料寫入方法包括:從該可複寫式非揮發性記憶體模組的該些實體抹除單元中提取一實體抹除單元作為一第一作動實體抹除單元;從該可複寫式非揮發性記憶體模組的該些實體抹除單元中提取另一實體抹除單元作為一第二作動實體抹除單元;將配置於該可複寫式非揮發性記憶體模組的多個邏輯單元劃分為一第一區與至少一第二區;將一第一資料程式化至該第一作動實體抹除單元,其中一主機系統指示將該第一資料儲存至該些邏輯單元之中的一第一邏輯單元且該第一邏輯單元屬於該第一區;將一第二資料程式化至該第二作動實體抹除單元,其中該主機系統指示將該第二資料儲存至該些邏輯單元之中的一第二邏輯單元且該第二邏輯單元屬於該第二區;以及將一第三資料程式化至該第二作動實體抹除單元,其中該主機系統指示將該第三資料儲存至該些邏輯單元之中的一第三邏輯單元且該第三邏輯單元屬於該第二區。
- 如申請專利範圍第1項所述的資料寫入方法,其中上述將配置於該可複寫式非揮發性記憶體模組的該些邏輯單元劃分為該 第一區與該至少一第二區的步驟包括:根據該些邏輯單元的更新頻率將該些邏輯單元劃分為該第一區與該至少一第二區。
- 如申請專利範圍第2項所述的資料寫入方法,其中上述根據該些邏輯單元的更新頻率將該些邏輯單元劃分為該第一區與該至少一第二區的步驟包括:記錄每一該些邏輯單元的一寫入次數;以及根據該些邏輯單元的該些寫入次數將該些邏輯單元劃分為該第一區與該至少一第二區。
- 如申請專利範圍第3項所述的資料寫入方法,其中上述根據該些邏輯單元的該些寫入次數將該些邏輯單元劃分為該第一區與該至少一第二區的步驟包括:根據對應每一該些邏輯單元的該寫入次數,將該些邏輯單元之中至少一邏輯單元劃分為該第一區,其中該至少一邏輯單元的寫入次數大於該些邏輯單元之中其他邏輯單元的寫入次數;以及將該些其他邏輯單元劃分為該第二區。
- 如申請專利範圍第3項所述的資料寫入方法,其中上述記錄每一該些邏輯單元的該寫入次數的步驟包括:記錄在一預先定義週期內對應每一該些邏輯單元的該寫入次數。
- 如申請專利範圍第3項所述的資料寫入方法,其中上述將 配置於該可複寫式非揮發性記憶體模組的該些邏輯單元劃分為該第一區與該至少一第二區的步驟包括:將該些邏輯單元用以儲存屬於該主機系統的一作業系統的一檔案系統的資料的至少一邏輯單元劃分為該第一區;以及將該些邏輯單元之中非該至少一邏輯單元的其他邏輯單元劃分為該第二區。
- 一種資料寫入方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元,該資料寫入方法包括:從該可複寫式非揮發性記憶體模組的該些實體抹除單元中提取一實體抹除單元作為一第一作動實體抹除單元;從該可複寫式非揮發性記憶體模組的該些實體抹除單元中提取另一實體抹除單元作為一第二作動實體抹除單元;從一主機系統接收一第一寫入指令與對應該第一寫入指令的一第一資料;判斷該第一資料是否屬於該主機系統的一作業系統的一檔案系統的資料;倘若該第一資料屬於該檔案系統的資料時,將該第一資料程式化至該第一作動實體抹除單元;以及倘若該第一資料非屬於該檔案系統的資料時,將該第一資料程式化至該第二作動實體抹除單元。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且用以從該可複寫式非揮發性記憶體模組的該些實體抹除單元中提取一實體抹除單元作為一第一作動實體抹除單元,其中該記憶體管理電路更用以從該可複寫式非揮發性記憶體模組的該些實體抹除單元中提取另一實體抹除單元作為一第二作動實體抹除單元,其中該記憶體管理電路更用以將配置於該可複寫式非揮發性記憶體模組的多個邏輯單元劃分為一第一區與至少一第二區,其中該記憶體管理電路更用以下達一第一指令序列給該可複寫式非揮發性記憶體模組以將一第一資料程式化至該第一作動實體抹除單元,其中該主機系統指示將該第一資料儲存至該些邏輯單元之中的一第一邏輯單元且該第一邏輯單元屬於該第一區,其中該記憶體管理電路更用以下達一第二指令序列給該可複寫式非揮發性記憶體模組以將一第二資料程式化至該第二作動實體抹除單元,其中該主機系統指示將該第二資料儲存至該些邏輯單元之中的一第二邏輯單元且該第二邏輯單元屬於該第二區, 其中該記憶體管理電路更用以下達一第三指令序列給該可複寫式非揮發性記憶體模組以將一第三資料程式化至該第二作動實體抹除單元,其中該主機系統指示將該第三資料儲存至該些邏輯單元之中的一第三邏輯單元且該第三邏輯單元屬於該第二區。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中在上述將配置於該可複寫式非揮發性記憶體模組的該些邏輯單元劃分為該第一區與該至少一第二區的運作包括:該記憶體管理電路用以根據該些邏輯單元的更新頻率將該些邏輯單元劃分為該第一區與該至少一第二區。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中在上述根據該些邏輯單元的更新頻率將該些邏輯單元劃分為該第一區與該至少一第二區的運作中包括:該記憶體管理電路用以記錄每一該些邏輯單元的一寫入次數;以及根據該些邏輯單元的該些寫入次數將該些邏輯單元劃分為該第一區與該至少一第二區。
- 如申請專利範圍第10項所述的記憶體控制電路單元,其中在上述根據該些邏輯單元的該些寫入次數將該些邏輯單元劃分為該第一區與該至少一第二區的運作中包括:該記憶體管理電路用以根據對應每一該些邏輯單元的該寫入次數,將該些邏輯單元之中至少一邏輯單元劃分為該第一區,其中 該至少一邏輯單元的寫入次數大於該些邏輯單元之中其他邏輯單元的寫入次數,其中該記憶體管理電路更用以將該些其他邏輯單元劃分為該第二區。
- 如申請專利範圍第10項所述的記憶體控制電路單元,其中在上述記錄每一該些邏輯單元的該寫入次數的運作中包括:該記憶體管理電路用以記錄在一預先定義週期內對應每一該些邏輯單元的該寫入次數。
- 如申請專利範圍第10項所述的記憶體控制電路單元,其中在上述將配置於該可複寫式非揮發性記憶體模組的該些邏輯單元劃分為該第一區與該至少一第二區的運作中包括:該記憶體管理電路用以將該些邏輯單元用以儲存屬於該主機系統的一作業系統的一檔案系統的資料的至少一邏輯單元劃分為該第一區;以及該記憶體管理電路更用以將該些邏輯單元之中非該至少一邏輯單元的其他邏輯單元劃分為該第二區。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元;以及 一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且用以從該可複寫式非揮發性記憶體模組的該些實體抹除單元中提取一實體抹除單元作為一第一作動實體抹除單元;其中該記憶體管理電路更用以從該可複寫式非揮發性記憶體模組的該些實體抹除單元中提取另一實體抹除單元作為一第二作動實體抹除單元,其中該記憶體管理電路更用以從一主機系統接收一第一寫入指令與對應該第一寫入指令的一第一資料,其中該記憶體管理電路更用以判斷該第一資料是否屬於該主機系統的一作業系統的一檔案系統的資料,其中倘若該第一資料屬於該檔案系統的資料時,該記憶體管理電路更用以下達一第一指令序列給該可複寫式非揮發性記憶體模組以將該第一資料程式化至該第一作動實體抹除單元,其中倘若該第一資料非屬於該檔案系統的資料時,該記憶體管理電路更用以下達一第二指令序列給該可複寫式非揮發性記憶體模組以將該第一資料程式化至該第二作動實體抹除單元。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫 式非揮發性記憶體模組,並且用以從該可複寫式非揮發性記憶體模組的該些實體抹除單元中提取一實體抹除單元作為一第一作動實體抹除單元,其中該記憶體控制電路單元更用以從該可複寫式非揮發性記憶體模組的該些實體抹除單元中提取另一實體抹除單元作為一第二作動實體抹除單元,其中該記憶體控制電路單元更用以將配置於該可複寫式非揮發性記憶體模組的多個邏輯單元劃分為一第一區與至少一第二區,其中該記憶體控制電路單元將一第一資料程式化至該第一作動實體抹除單元,其中該主機系統指示將該第一資料儲存至該些邏輯單元之中的一第一邏輯單元且該第一邏輯單元屬於該第一區,其中該記憶體控制電路單元更用以將一第二資料程式化至該第二作動實體抹除單元,其中該主機系統指示將該第二資料儲存至該些邏輯單元之中的一第二邏輯單元且該第二邏輯單元屬於該第二區,其中該記憶體控制電路單元更用以將一第三資料程式化至該第二作動實體抹除單元,其中該主機系統指示將該第三資料儲存至該些邏輯單元之中的一第三邏輯單元且該第三邏輯單元屬於該第二區。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中在 上述將配置於該可複寫式非揮發性記憶體模組的該些邏輯單元劃分為該第一區與該至少一第二區的運作包括:該記憶體控制電路單元用以根據該些邏輯單元的更新頻率將該些邏輯單元劃分為該第一區與該至少一第二區。
- 如申請專利範圍第16項所述的記憶體儲存裝置,其中在上述根據該些邏輯單元的更新頻率將該些邏輯單元劃分為該第一區與該至少一第二區的運作中包括:該記憶體控制電路單元用以記錄每一該些邏輯單元的一寫入次數;以及根據該些邏輯單元的該些寫入次數將該些邏輯單元劃分為該第一區與該至少一第二區。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中在上述根據該些邏輯單元的該些寫入次數將該些邏輯單元劃分為該第一區與該至少一第二區的運作中包括:該記憶體控制電路單元用以根據對應每一該些邏輯單元的該寫入次數,將該些邏輯單元之中至少一邏輯單元劃分為該第一區,其中該至少一邏輯單元的寫入次數大於該些邏輯單元之中其他邏輯單元的寫入次數,其中該記憶體控制電路單元更用以將該些其他邏輯單元劃分為該第二區。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中在 上述記錄每一該些邏輯單元的該寫入次數的運作中包括:該記憶體控制電路單元用以記錄在一預先定義週期內對應每一該些邏輯單元的該寫入次數。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中在上述將配置於該可複寫式非揮發性記憶體模組的該些邏輯單元劃分為該第一區與該至少一第二區的運作中包括:該記憶體控制電路單元用以將該些邏輯單元用以儲存屬於該主機系統的一作業系統的一檔案系統的資料的至少一邏輯單元劃分為該第一區;以及該記憶體控制電路單元更用以將該些邏輯單元之中非該至少一邏輯單元的其他邏輯單元劃分為該第二區。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,並且用以從該可複寫式非揮發性記憶體模組的該些實體抹除單元中提取一實體抹除單元作為一第一作動實體抹除單元;其中該記憶體控制電路單元更用以從該可複寫式非揮發性記憶體模組的該些實體抹除單元中提取另一實體抹除單元作為一第 二作動實體抹除單元,其中該記憶體控制電路單元更用以從一主機系統接收一第一寫入指令與對應該第一寫入指令的一第一資料,其中該記憶體控制電路單元更用以判斷該第一資料是否屬於該主機系統的一作業系統的一檔案系統的資料,其中倘若該第一資料屬於該檔案系統的資料時,該記憶體控制電路單元更用以將該第一資料程式化至該第一作動實體抹除單元,其中倘若該第一資料非屬於該檔案系統的資料時,該記憶體控制電路單元更用以將該第一資料程式化至該第二作動實體抹除單元。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103111949A TWI517165B (zh) | 2014-03-31 | 2014-03-31 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
US14/291,004 US9298610B2 (en) | 2014-03-31 | 2014-05-30 | Data writing method, memory control circuit unit and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103111949A TWI517165B (zh) | 2014-03-31 | 2014-03-31 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201537577A TW201537577A (zh) | 2015-10-01 |
TWI517165B true TWI517165B (zh) | 2016-01-11 |
Family
ID=54190402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103111949A TWI517165B (zh) | 2014-03-31 | 2014-03-31 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9298610B2 (zh) |
TW (1) | TWI517165B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652382B1 (en) * | 2014-09-04 | 2017-05-16 | Sk Hynix Memory Solutions Inc. | Look-ahead garbage collection for NAND flash based storage |
TWI534618B (zh) * | 2015-07-13 | 2016-05-21 | 群聯電子股份有限公司 | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 |
TWI596476B (zh) * | 2015-11-27 | 2017-08-21 | 群聯電子股份有限公司 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
CN107092560B (zh) * | 2016-02-17 | 2020-06-16 | 建兴储存科技(广州)有限公司 | 固态储存装置及运用于其中的快闪转换层对应表重建方法 |
TWI591641B (zh) * | 2016-02-19 | 2017-07-11 | 群聯電子股份有限公司 | 資料程式化方法、記憶體控制電路單元及記憶體儲存裝置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963970A (en) * | 1996-12-20 | 1999-10-05 | Intel Corporation | Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields |
US6973531B1 (en) * | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
US7139863B1 (en) * | 2003-09-26 | 2006-11-21 | Storage Technology Corporation | Method and system for improving usable life of memory devices using vector processing |
KR100874702B1 (ko) * | 2006-10-02 | 2008-12-18 | 삼성전자주식회사 | 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법 |
US7849275B2 (en) * | 2007-11-19 | 2010-12-07 | Sandforce, Inc. | System, method and a computer program product for writing data to different storage devices based on write frequency |
TWI425523B (zh) * | 2008-03-25 | 2014-02-01 | Asmedia Technology Inc | 混合型快閃儲存裝置及其操作方法 |
US8891298B2 (en) * | 2011-07-19 | 2014-11-18 | Greenthread, Llc | Lifetime mixed level non-volatile memory system |
TWI400707B (zh) * | 2009-07-09 | 2013-07-01 | Phison Electronics Corp | 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統 |
US8447915B2 (en) * | 2009-07-23 | 2013-05-21 | Hitachi, Ltd. | Flash memory device for allocating physical blocks to logical blocks based on an erase count |
JP5593254B2 (ja) * | 2010-05-12 | 2014-09-17 | パナソニック株式会社 | 半導体メモリ装置及び半導体メモリシステム |
US9361167B2 (en) * | 2012-10-24 | 2016-06-07 | SanDisk Technologies, Inc. | Bit error rate estimation for wear leveling and for block selection based on data type |
US9336133B2 (en) * | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
-
2014
- 2014-03-31 TW TW103111949A patent/TWI517165B/zh active
- 2014-05-30 US US14/291,004 patent/US9298610B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW201537577A (zh) | 2015-10-01 |
US9298610B2 (en) | 2016-03-29 |
US20150277785A1 (en) | 2015-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI693516B (zh) | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
TWI526830B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN104679437B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
CN104793891B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI571882B (zh) | 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI536166B (zh) | 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW201712549A (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI582776B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201519242A (zh) | 資料寫入方法、記憶體儲存裝置、記憶體控制電路單元 | |
TWI517165B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201403319A (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
CN104978149A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN102567221B (zh) | 数据管理方法、存储器控制器与存储器储存装置 | |
TWI534814B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201413450A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN110308876B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN102968385A (zh) | 数据写入方法、存储器控制器与储存装置 | |
CN105988950A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 |