TWI648627B - 資料儲存裝置與操作方法 - Google Patents

資料儲存裝置與操作方法 Download PDF

Info

Publication number
TWI648627B
TWI648627B TW106121037A TW106121037A TWI648627B TW I648627 B TWI648627 B TW I648627B TW 106121037 A TW106121037 A TW 106121037A TW 106121037 A TW106121037 A TW 106121037A TW I648627 B TWI648627 B TW I648627B
Authority
TW
Taiwan
Prior art keywords
state
flash memory
memory
blocks
threshold
Prior art date
Application number
TW106121037A
Other languages
English (en)
Other versions
TW201737089A (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 慧榮科技股份有限公司
Publication of TW201737089A publication Critical patent/TW201737089A/zh
Application granted granted Critical
Publication of TWI648627B publication Critical patent/TWI648627B/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/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Abstract

一種資料儲存裝置,包括快閃記憶體以及控制器。快閃記憶體包括複數個區塊,其中區塊之每一者包括複數個頁面。控制器耦接快閃記憶體,用以依據快閃記憶體中的空閒區塊的數量以及快閃記憶體中多數頁面為空閒的無效率區塊的數量,在快閃記憶體執行一記憶體回收流程,用以合併至少兩個無效率區塊以從複數個無效率區塊中釋放至少一個空閒區塊。

Description

資料儲存裝置與操作方法
本發明係關於一種包含快閃記憶體(FLASH memory)的資料儲存裝置,特別是關於在快閃記憶體上執行記憶體回收(garbage-collection,GC)之流程。
記憶體回收流程被廣泛使用於各種記憶體裝置中。記憶體回收流程特別被使用在大多數頁面為被用或空閒的無效率的區塊,合併這些無效率的區塊為一個有效率的區塊,而得到更多備用區塊。藉由規律地執行記憶體回收流程,能夠提升記憶體裝置的效率。
然而,是否執行記憶體回收流程通常是由一個臨界值所決定。當決定執行記憶體回收流程時,會降低記憶體裝置的效能。舉例而言,因為執行記憶體回收,造成寫入延遲的突然增加以及效能突然劣化。此外,記憶體裝置具有不同的操作狀態,能夠執行來自主機的各種指令。因此,需要一種動態調整的記憶體回收流程,防止記憶體裝置的效能突然劣化,並且配合各種操作狀態與主機指令。
本發明之一實施例提供了一種資料儲存裝置,包括快閃記憶體以及控制器。快閃記憶體包括複數個區塊,其中區塊之每一者包括複數個頁面。控制器耦接快閃記憶體, 用以依據快閃記憶體中的空閒區塊的數量以及快閃記憶體中多數頁面為空閒的無效率區塊的數量,在快閃記憶體執行一記憶體回收流程,並且記憶體回收流程係用以合併至少兩個無效率區塊以從複數個無效率區塊中釋放至少一個空閒區塊。
在一實施例中,當無效率區塊的數量小於一第一臨界值時,快閃記憶體位於一第一狀態;當快閃記憶體中的空閒區塊的數量大於或等於一第二臨界值時,快閃記憶體位於一第二狀態;當快閃記憶體中的空閒區塊的數量大於或等於一第三臨界值並且小於第二臨界值時,快閃記憶體位於一第三狀態或一第四狀態;當快閃記憶體中的空閒區塊的數量大於或等於一第四臨界值並且小於第三臨界值時,快閃記憶體位於一第五狀態;以及當快閃記憶體中的空閒區塊的數量小於第四臨界值時,快閃記憶體位於一第六狀態,其中第二臨界值大於第三臨界值,第三臨界值大於第四臨界值。相較於快閃記憶體位於第三狀態,當快閃記憶體位於該第四狀態時控制器會執行更多記憶體回收流程。
此外,控制器更依據資料儲存裝置的一操作模式在快閃記憶體執行記憶體回收流程。資料儲存裝置的操作模式包括一讀取再生操作或是一平均抹除操作,並且平均抹除操作的記憶體回收流程的執行,比起讀取再生操作的記憶體回收流程的執行具有較高的優先順序。當操作模式為讀取再生操作時,控制器指定要被再生的區塊為要被合併的區塊,並且當快閃記憶體位於第一狀態、第二狀態、第三狀態、第 四狀態或第五狀態時,執行讀取再生操作。當操作模式為平均抹除操作時,控制器指定低抹除次數的區塊為記憶體回收流程中要被合併的區塊,並且當快閃記憶體位於第一狀態、第二狀態、第三狀態、第四狀態或第五狀態時,執行平均抹除操作。
在另一實施例中,控制器耦接一主機,控制器更依據主機所傳送的指令在快閃記憶體執行記憶體回收流程。主機所傳送的指令包括一更新指令或一清除指令。當快閃記憶體位於第一狀態、第二狀態、第三狀態或第四狀態時,快閃記憶體流程係依據更新指令而執行,當快閃記憶體位於第一狀態或第二狀態時,快閃記憶體流程係依據清除指令而執行。當快閃記憶體位於第六狀態時執行記憶體回收流程的頻率,高於當快閃記憶體位於第一狀態、第二狀態、第三狀態、第四狀態或第五狀態時執行記憶體回收流程的頻率。
本發明之另一實施例提供了一種快閃記憶體之操作方法,包括決定快閃記憶體中的空閒區塊的數量以及快閃記憶體中多數頁面為空閒的無效率區塊的數量;以及依據快閃記憶體中的空閒區塊的數量以及無效率區塊的數量,在快閃記憶體執行一記憶體回收流程,其中記憶體回收流程係用以合併至少兩個無效率區塊以從複數個無效率區塊中釋放至少一個空閒區塊。
關於本發明其他附加的特徵與優點,此領域之熟習技術人士,在不脫離本發明之精神和範圍內,當可根據本案實施方法中所揭露之資料儲存裝置與操作方法。
100‧‧‧資料儲存裝置
120‧‧‧控制器
140‧‧‧快閃記憶體
160-16N‧‧‧區塊
160A、160Z-16NZ‧‧‧頁面
180‧‧‧主機
S310‧‧‧安全抹除GC
S320‧‧‧平均抹除
S330‧‧‧讀取再生
S340‧‧‧GC回復效能
S342‧‧‧GC空閒
S344‧‧‧GC緊急
S350‧‧‧更新
S360‧‧‧清除
第1圖係顯示根據本發明一實施例所述之資料儲存裝置之方塊示意圖;第2圖係顯示根據本發明一實施例所述之快閃記憶體之複數個狀態的示意圖;第3圖係顯示根據本發明一實施例所述之具有不同操作模式與主機指令的快閃記憶體之複數個狀態的另一示意圖;第4A與4B圖係顯示根據本發明一實施例所述之快閃記憶體之操作方法的流程圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明一實施例所述之資料儲存裝置100之方塊示意圖。在一實施例中,資料儲存裝置100包括控制器120與快閃記憶體140,並且資料儲存裝置耦接主機180以傳送資料與指令或接收資料與指令。如第1圖所示,快閃記憶體140包括複數個區塊160~16N,區塊160~16N中的每一者包括複數個頁面160A~16NZ。舉例而言,區塊160包括頁面160A~160Z,區塊16N包括頁面16NA~16NZ。此外,控制 器120耦接快閃記憶體140以相互傳送資料與指令或接收資料與指令。進一步而言,控制器120可包括具有韌體碼之一微控制器以及唯讀記憶體(ROM)。微控制器執行韌體碼以操作或是存取快閃記憶體140。要注意的是,控制器120讀取或寫入快閃記憶體140的頁面160A~16NZ,並且在快閃記憶體140執行記憶體回收流程。
在一實施例中,控制器120係用以依據快閃記憶體140中的空閒區塊的數量、以及快閃記憶體140中的多數頁面為空閒的無效率區塊的數量,在快閃記憶體140執行記憶體回收流程。記憶體回收流程係用以合併至少兩個無效率的區塊,從無效率的區塊中釋放出至少一個空閒的區塊。進一步而言,空閒區塊的特徵在於其每一個頁面都是空的、沒有寫入任何資料。無效率的區塊的特徵在於其大部分的頁面是空的、沒有寫入資料。
在一實施例中,記憶體回收流程係根據複數個臨界值而不是只有一個臨界值來執行或操作,以避免快閃記憶體140的突然延遲。舉例而言,第2圖係顯示根據本發明一實施例所述之快閃記憶體140之複數個狀態的示意圖。在一實施例中,當快閃記憶體140中的無效率區塊的數量大於或等於第一臨界值V1時,快閃記憶體140位於第一狀態S1。當快閃記憶體140中的無效率區塊的數量大於或等於第二臨界值V2時,快閃記憶體140位於第二狀態S2。當快閃記憶體140中的無效率區塊的數量大於或等於第三臨界值V3但是小於第二臨界值V2時,快閃記憶體140位於第三狀態S3或第四狀態S4。當 快閃記憶體140中的無效率區塊的數量大於或等於第四臨界值V4但是小於第三臨界值V3時,快閃記憶體140位於第五狀態S5。當快閃記憶體140中的無效率區塊的數量小於或等於第四臨界值V4時,快閃記憶體140位於第六狀態S6。要注意的是,第二臨界值V2大於第三臨界值V3,第三臨界值V3大於第四臨界值V4。舉例而言,快閃記憶體具有1024個區塊,而第二臨界值V2、第三臨界值V3與第四臨界值V4分別為30、24與18。
快閃記憶體140的狀態的詳細描述如表1所示。
舉例而言,當快閃記憶體140沒有無效率區塊或是很少無 效率區塊時,無效率區塊的數量小於第一臨界值V1,快閃記憶體140屬於第一狀態S1。當快閃記憶體140在第一狀態S1時,亦具有足夠的空閒區塊。當快閃記憶體140的無效率區塊的數量大於或等於第一臨界值V1時,快閃記憶體140為第二狀態S2,並且控制器120執行或啟動記憶體回收流程。舉例而言,快閃記憶體140有10個無效率區塊。在執行記憶體回收流程之後,10個無效率區塊會被收集並彙整為一個區塊以釋放其他9個空閒區塊。換言之,可以得到額外的9個空閒區塊。
此外,當快閃記憶體140的空閒區塊的數量大於或等於第二臨界值V2,則快閃記憶體140位於第二狀態S2,並且控制器120執行記憶體回收流程。詳細而言,當更多資料寫入快閃記憶體140時,就會降低空閒區塊的數量。因此,在寫入操作的期間,如果空閒區塊的數量小於第二臨界值V2,快閃記憶體140的狀態會從第二狀態S2改變為第三狀態S3。同樣地,當空閒區塊的數量小於第三臨界值V3或是小於第四臨界值V4,則快閃記憶體140會分別進入第五狀態S5或第六狀態S6。當快閃記憶體140位於第六狀態S6時,空閒區塊的數量很少,需要緊急執行記憶體回收流程以得到更多空閒區塊,使得快閃記憶體140能夠適當而正常操作。當空閒區塊的數量大於或等於第四臨界值V4或第三臨界值V3時,快閃記憶體140的狀態會從第六狀態S6分別改變為第五狀態S5或第四狀態S4。
要注意的是,相較於快閃記憶體140位於第三狀態S3,當快閃記憶體140位於第四狀態S4時會執行更多記憶體回 收流程。第三狀態S3與第四狀態S4的差別在於,第三狀態S3相較於第四狀態S4而言,良好效能具有較高的優先順序。另一方面,因為快閃記憶體140在第四狀態S4時能夠犧牲效能,控制器120執行較多的記憶體回收流程。然而,第2圖之示意圖係用以說明而非限制。在其他實施例中,當空閒區塊的數量小於第二臨界值V2時,快閃記憶體140的狀態可以從第二狀態S2改變為第四狀態S4。當空閒區塊的數量大於第三臨界值V3時,快閃記憶體140的狀態可以從第五狀態S5改變為第四狀態S4。
第3圖係顯示根據本發明一實施例所述之具有不同操作模式與主機指令的快閃記憶體之複數個狀態的另一示意圖。在一實施例中,控制器120依據資料儲存裝置100的操作模式而執行快閃記憶體140的記憶體回收流程。詳細而言,資料儲存裝置100的操作模式包括安全抹除GC操作S310、平均抹除操作S320、以及讀取再生操作S330。在另一實施例中,資料儲存裝置100的操作模式包括平均抹除操作S320以及讀取再生操作S330。要注意的是,平均抹除操作S320的記憶體回收流程的執行,比起讀取再生S330的記憶體回收流程的執行具有較高的優先順序。
如第3圖所示,在一實施例中,當快閃記憶體140位於第一狀態S1、第二狀態S2、第三狀態S3、第四狀態S4、第五狀態S5或第六狀態S6時,則執行安全抹除GC操作S310。換言之,在快閃記憶體140的每一個狀態中都可以執行安全抹除GC操作S310。在另一實施例中,當快閃記憶體140位於第 一狀態S1、第二狀態S2、第三狀態S3、第四狀態S4或第五狀態S5時,則執行平均抹除操作S320。當操作模式為平均抹除操作S320時,控制器120指定低抹除次數的區塊為記憶體回收流程中進行整併的區塊。換言之,較低抹除次數的區塊會被整併以釋放與得到更多的空閒區塊。在另一實施例中,當快閃記憶體140位於第一狀態S1、第二狀態S2、第三狀態S3、第四狀態S4或第五狀態S5時,則執行讀取再生操作S330。當操作模式為讀取再生操作S330時,控制器120指定要被再生的區塊為要被整併的區塊以執行記憶體回收流程。換言之,將被再生的區塊會被整併以釋放與得到更多的空閒區塊。
此外,當快閃記憶體140位於第二狀態S2、第三狀態S3或第四狀態S4,表示快閃記憶體140具有足夠的空閒區塊、不用犧牲太多效能就能執行與操作GC,則執行GC回復效能S340。當快閃記憶體140位於第五狀態S5表示快閃記憶體140沒有足夠的空閒區塊而需要更多空閒區塊時,則執行GC空閒操作S342。當快閃記憶體140位於第六狀態S6表示快閃記憶體140具有很少的空閒區塊而迫切需要更多空閒區塊時,則執行GC緊急操作S344。
詳細而言,當快閃記憶體140在第六狀態S6(對應GC回復效能操作S340)時執行記憶體回收流程的頻率會高於當快閃記憶體140位於第一狀態S1、第二狀態S2、第三狀態S3、第四狀態S4(對應GC空閒操作S342)或第五狀態S5(對應GC緊急操作S344)時執行記憶體回收流程的頻率。進一步說明之,當快閃記憶體140位於第四狀態S4時,執行記憶體回收 流程,並且將第一容量的資料寫入快閃記憶體140,然後再次執行記憶體回收流程。當快閃記憶體140位於第六狀態S6時,執行記憶體回收流程,並且將第二容量的資料寫入快閃記憶體140,然後再次執行記憶體回收流程。第二容量大於第一容量。舉例而言,第一容量為16KB,第二容量為1MB。換言之,因為第六狀態S6比其他五個狀態S1~S5更迫切需要取得空閒區塊,當快閃記憶體140在第六狀態S6時執行記憶體回收流程的頻率會高於當快閃記憶體140位於第四狀態S4時執行記憶體回收流程的頻率。因此,本發明提供了一種多重記憶體回收流程,能夠對應快閃記憶體的不同狀態S1~S6以不同的頻率來加以執行。
在另一實施例中,控制器120耦接主機180,並且控制器120依據主機180所傳送的指令而在快閃記憶體140執行記憶體回收流程。詳細而言,主機180所傳送的指令包括更新指令S350以及清除指令S360。進一步而言,當快閃記憶體140位於第一狀態S1、第二狀態S2、第三狀態S3或第四狀態S4時,則依據更新指令S350執行記憶體回收流程。當快閃記憶體140位於第一狀態S1或第二狀態S2時,則依據清除指令S360執行記憶體回收流程。因此,本發明提供了一種動態調整的記憶體回收流程,防止傳統單一臨界值的記憶體回收流程所造成的記憶體裝置的效能的突然劣化。再者,本發明所提供的記憶體回收流程可對應於各種操作狀態以及主機指令。
第4A與4B圖係顯示根據本發明一實施例所述之 快閃記憶體140之操作方法的流程圖。在步驟S410中,決定在快閃記憶體140中多數頁面為空閒的無效率區塊的數量以及快閃記憶體140中的空閒區塊的數量。在步驟S412中,依據快閃記憶體140中的空閒區塊的數量以及無效率區塊的數量決定快閃記憶體140的記憶體回收流程。然後,在步驟S414中,決定無效率區塊的數量是否大於或等於第一臨界值V1。如果無效率區塊的數量大於或等於第一臨界值V1,則執行步驟S416,快閃記憶體140位於第一狀態S1。如果無效率區塊的數量小於第一臨界值V1,則執行步驟S418,決定快閃記憶體140中的空閒區塊的數量是否大於或等於第二臨界值V2。如果快閃記憶體140中的空閒區塊的數量大於或等於第二臨界值V2,則執行步驟S420,快閃記憶體140位於第二狀態S2。快閃記憶體140中的空閒區塊的數量小於第二臨界值V2,則執行步驟S422。
在步驟S422中,決定快閃記憶體140中的空閒區塊的數量是否大於或等於第三臨界值而小於第二臨界值。如果快閃記憶體140中的空閒區塊的數量大於或等於第三臨界值V3而小於第二臨界值V2,則執行步驟S423。如果快閃記憶體140中的空閒區塊的數量小於第三臨界值V3,則執行步驟S426。在步驟S423中,決定快閃記憶體140的效能是否比記憶體回收流程具有更高的優先順序。如果快閃記憶體140的效能比記憶體回收流程具有更高的優先順序,則執行步驟S424,快閃記憶體140位於第三狀態S3。如果快閃記憶體140的效能沒有比記憶體回收流程具有更高的優先順序,則執行步驟 S425,快閃記憶體140位於第四狀態S4。此外,在步驟S426中,決定快閃記憶體140中的空閒區塊的數量是否大於或等於第四臨界值V4而小於第三臨界值V3。如果快閃記憶體140中的空閒區塊的數量大於或等於第四臨界值V4而小於第三臨界值V3,則執行步驟S428,快閃記憶體140位於第五狀態S5。如果快閃記憶體140中的空閒區塊的數量小於第四臨界值V4,則執行步驟S430,快閃記憶體140位於第六狀態S6。透過各種主機指令以及對應各種操作狀態而執行記憶體回收流程的方法如前所述,故此處不再贅述之。
在本說明書以及申請專利範圍中的序數,例如「第一」、「第二」、「第三」等等,彼此之間並沒有順序上的先後關係,其僅用於標示區分兩個具有相同名字之不同元件。本發明說明書中「耦接」一詞係泛指各種直接或間接之電性連接方式。本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (20)

  1. 一種資料儲存裝置,包括:一快閃記憶體(FLASH memory),包括複數個區塊,其中該等區塊之每一者包括複數個頁面;以及一控制器,耦接該快閃記憶體,用以依據複數個臨界值,對該快閃記憶體執行不同的記憶體回收(garbage-collection)流程,其中該記憶體回收流程係用以合併該快閃記憶體之至少兩個無效率區塊,並且從複數個無效率區塊中釋放至少一個空閒區塊。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中該等臨界值係由該快閃記憶體中的該空閒區塊的數量、以及該快閃記憶體中的該等無效率區塊的數量所決定。
  3. 如申請專利範圍第2項所述之資料儲存裝置,其中該空閒區塊的每一個頁面都是空頁,該等無效率區塊之每一者的大部分的頁面為空頁。
  4. 如申請專利範圍第2項所述之資料儲存裝置,其中該等臨界值包括第一臨界值、第二臨界值、第三臨界值以及第四臨界值,並且該控制器決定:當該無效率區塊的數量小於該第一臨界值時,該快閃記憶體位於第一狀態;當該快閃記憶體中的該空閒區塊的數量大於或等於該第二臨界值時,該快閃記憶體位於第二狀態;當該快閃記憶體中的該空閒區塊的數量大於或等於該第三臨界值並且小於該第二臨界值時,該快閃記憶體位於第 三狀態或第四狀態;當該快閃記憶體中的該空閒區塊的數量大於或等於該第四臨界值並且小於該第三臨界值時,該快閃記憶體位於第五狀態。
  5. 如申請專利範圍第4項所述之資料儲存裝置,其中相較於該快閃記憶體位於該第三狀態,當該快閃記憶體位於該第四狀態時該控制器會執行更多該記憶體回收流程。
  6. 如申請專利範圍第4項所述之資料儲存裝置,其中該資料儲存裝置的操作模式包括一讀取再生操作或是一平均抹除操作,並且該平均抹除操作的記憶體回收流程的執行,比起該讀取再生操作的記憶體回收流程的執行具有較高的優先順序。
  7. 如申請專利範圍第6項所述之資料儲存裝置,其中當該操作模式為該讀取再生操作時,該控制器指定要被再生的區塊為要被合併的區塊,並且當該快閃記憶體位於該第一狀態、該第二狀態、該第三狀態、該第四狀態或該第五狀態時,執行該讀取再生操作。
  8. 如申請專利範圍第6項所述之資料儲存裝置,其中當該操作模式為該平均抹除操作時,該控制器指定低抹除次數的區塊為記憶體回收流程中要被合併的區塊,並且當該快閃記憶體位於該第一狀態、該第二狀態、該第三狀態、該第四狀態或該第五狀態時,執行該平均抹除操作。
  9. 如申請專利範圍第4項所述之資料儲存裝置,更包括: 當該快閃記憶體中的該空閒區塊的數量小於該第四臨界值時,該快閃記憶體位於一第六狀態。
  10. 如申請專利範圍第9項所述之資料儲存裝置,其中當該快閃記憶體位於該第六狀態時執行該記憶體回收流程的頻率,高於當該快閃記憶體位於該第一狀態、該第二狀態、該第三狀態、該第四狀態或該第五狀態時執行該記憶體回收流程的頻率。
  11. 一種用於快閃記憶體(FLASH memory)之操作方法,該快閃記憶體包括複數個區塊,其中該等區塊之每一者包括複數個頁面,該操作方法包括:依據複數個臨界值,決定對該快閃記憶體執行不同的記憶體回收(garbage-collection)流程;以及合併該快閃記憶體之至少兩個無效率區塊,並且從複數個無效率區塊中釋放至少一個空閒區塊。
  12. 如申請專利範圍第11項所述之操作方法,更包括:藉由該快閃記憶體中的該空閒區塊的數量、以及該快閃記憶體中的該等無效率區塊的數量,決定該等臨界值,其中該等臨界值包括第一臨界值、第二臨界值、第三臨界值以及第四臨界值。
  13. 如申請專利範圍第12項所述之操作方法,其中該空閒區塊的每一個頁面都是空頁,該等無效率之每一者的大部分的頁面為空頁。
  14. 如申請專利範圍第12項所述之操作方法,更包括: 當該無效率區塊的數量小於該第一臨界值時,判斷該快閃記憶體位於第一狀態;當該快閃記憶體中的該空閒區塊的數量大於或等於該第二臨界值時,判斷該快閃記憶體位於第二狀態;當該快閃記憶體中的該空閒區塊的數量大於或等於該第三臨界值並且小於該第二臨界值時,判斷該快閃記憶體位於第三狀態或第四狀態;以及當該快閃記憶體中的該空閒區塊的數量大於或等於該第四臨界值並且小於該第三臨界值時,判斷該快閃記憶體位於第五狀態。
  15. 如申請專利範圍第14項所述之操作方法,其中相較於該快閃記憶體位於該第三狀態,當該快閃記憶體位於該第四狀態時該執行更多該記憶體回收流程。
  16. 如申請專利範圍第14項所述之操作方法,其中該資料儲存裝置之操作模式包括一讀取再生操作或是一平均抹除操作,並且該平均抹除操作的記憶體回收流程的執行,比起該讀取再生操作的記憶體回收流程的執行具有較高的優先順序。
  17. 如申請專利範圍第16項所述之操作方法,其中當該操作模式為該讀取再生操作時,指定要被再生的區塊為要被合併的區塊,並且當該快閃記憶體位於該第一狀態、該第二狀態、該第三狀態、該第四狀態或該第五狀態時,執行該讀取再生操作。
  18. 如申請專利範圍第16項所述之操作方法,其中當該操作模式為該平均抹除操作時,指定低抹除次數的區塊為記憶體回收流程中要被合併的區塊,並且當該快閃記憶體位於該第一狀態、該第二狀態、該第三狀態、該第四狀態或該第五狀態時,執行該平均抹除操作。
  19. 如申請專利範圍第14項所述之操作方法,更包括:當該快閃記憶體中的該空閒區塊的數量小於該第四臨界值時,判斷該快閃記憶體位於一第六狀態。
  20. 如申請專利範圍第19項所述之操作方法,其中當該快閃記憶體位於該第六狀態時執行該記憶體回收流程的頻率,高於當該快閃記憶體位於該第一狀態、該第二狀態、該第三狀態、該第四狀態或該第五狀態時執行該記憶體回收流程的頻率。
TW106121037A 2014-11-10 2015-09-11 資料儲存裝置與操作方法 TWI648627B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/537,551 US9606733B2 (en) 2014-11-10 2014-11-10 Data storage device and operating method
US14/537,551 2014-11-10

Publications (2)

Publication Number Publication Date
TW201737089A TW201737089A (zh) 2017-10-16
TWI648627B true TWI648627B (zh) 2019-01-21

Family

ID=55912250

Family Applications (2)

Application Number Title Priority Date Filing Date
TW106121037A TWI648627B (zh) 2014-11-10 2015-09-11 資料儲存裝置與操作方法
TW104130052A TWI597604B (zh) 2014-11-10 2015-09-11 資料儲存裝置與操作方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW104130052A TWI597604B (zh) 2014-11-10 2015-09-11 資料儲存裝置與操作方法

Country Status (3)

Country Link
US (1) US9606733B2 (zh)
CN (1) CN105589811B (zh)
TW (2) TWI648627B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI563507B (en) * 2015-07-01 2016-12-21 Phison Electronics Corp Memory management method, memory control circuit unit and memry storage apparatus
KR20180040288A (ko) 2016-10-12 2018-04-20 삼성전자주식회사 비휘발성 메모리 장치의 리클레임 제어 방법, 상기 비휘발성 메모리 장치를 포함하는 저장 장치의 동작 방법 및 저장 장치
CN106604111A (zh) * 2016-12-16 2017-04-26 深圳市九洲电器有限公司 机顶盒Flash数据存储方法及系统
US10452532B2 (en) * 2017-01-12 2019-10-22 Micron Technology, Inc. Directed sanitization of memory
US10437708B2 (en) 2017-01-26 2019-10-08 Bank Of America Corporation System for refreshing and sanitizing testing data in a low-level environment
TWI646554B (zh) * 2017-03-28 2019-01-01 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
US10545692B2 (en) * 2017-04-04 2020-01-28 Sandisk Technologies Llc Memory maintenance operations during refresh window
US10885991B2 (en) 2017-04-04 2021-01-05 Sandisk Technologies Llc Data rewrite during refresh window
KR102259256B1 (ko) * 2017-05-16 2021-06-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI658361B (zh) * 2017-09-05 2019-05-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US10445008B2 (en) 2017-09-15 2019-10-15 Macronix International Co., Ltd. Data management method for memory and memory apparatus
KR102419036B1 (ko) 2017-12-18 2022-07-11 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11004495B2 (en) 2017-12-18 2021-05-11 SK Hynix Inc. Data storage device and operating method thereof
TWI643065B (zh) * 2017-12-20 2018-12-01 慧榮科技股份有限公司 用於動態執行記憶體回收資料儲存裝置與操作方法
CN110058794B (zh) * 2018-01-19 2022-11-01 上海宝存信息科技有限公司 用于动态执行垃圾回收数据储存装置与操作方法
US10331555B1 (en) 2018-03-06 2019-06-25 Western Digital Technologies, Inc. Dynamic memory compaction
US10635599B2 (en) 2018-07-26 2020-04-28 Sandisk Technologies Llc Memory controller assisted address mapping
TWI702496B (zh) * 2018-08-28 2020-08-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN110333770B (zh) * 2019-07-10 2023-05-09 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
TWI726775B (zh) * 2020-07-23 2021-05-01 華邦電子股份有限公司 一種記憶體裝置及其輸入輸出緩衝控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094445A1 (en) * 2005-10-20 2007-04-26 Trika Sanjeev N Method to enable fast disk caching and efficient operations on solid state disks
US20090089485A1 (en) * 2007-09-27 2009-04-02 Phison Electronics Corp. Wear leveling method and controller using the same
US20090089484A1 (en) * 2007-09-28 2009-04-02 Phison Electronics Corp. Data protection method for power failure and controller using the same

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339808B (zh) * 2008-07-28 2011-02-09 华中科技大学 存储块的擦除方法及装置
CN101369252A (zh) * 2008-09-16 2009-02-18 浙江大学 基于nand闪存文件系统中静态数据损耗均衡的方法
US8463826B2 (en) * 2009-09-03 2013-06-11 Apple Inc. Incremental garbage collection for non-volatile memories
US9323667B2 (en) * 2012-04-12 2016-04-26 Violin Memory Inc. System and method for managing trim operations in a flash memory system using mapping tables and block status tables
CN102799535A (zh) * 2012-06-29 2012-11-28 记忆科技(深圳)有限公司 固态硬盘的数据处理方法及固态硬盘
CN103412826A (zh) * 2013-07-18 2013-11-27 记忆科技(深圳)有限公司 固态硬盘的垃圾回收方法及系统
TWI515735B (zh) * 2013-12-09 2016-01-01 群聯電子股份有限公司 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094445A1 (en) * 2005-10-20 2007-04-26 Trika Sanjeev N Method to enable fast disk caching and efficient operations on solid state disks
US20090089485A1 (en) * 2007-09-27 2009-04-02 Phison Electronics Corp. Wear leveling method and controller using the same
US20090089484A1 (en) * 2007-09-28 2009-04-02 Phison Electronics Corp. Data protection method for power failure and controller using the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TN-2960: Garbage Collection in SLC NAND Flash Memory Introduction(2011 Micron Technology),"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.593.3116" *
TN-2960: Garbage Collection in SLC NAND Flash Memory Introduction(2011 Micron Technology),"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.593.3116"。

Also Published As

Publication number Publication date
US20160132253A1 (en) 2016-05-12
TW201737089A (zh) 2017-10-16
TW201617883A (zh) 2016-05-16
CN105589811A (zh) 2016-05-18
CN105589811B (zh) 2019-02-01
US9606733B2 (en) 2017-03-28
TWI597604B (zh) 2017-09-01

Similar Documents

Publication Publication Date Title
TWI648627B (zh) 資料儲存裝置與操作方法
TWI622923B (zh) 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置
TWI479313B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US9690490B2 (en) Method for writing data, memory storage device and memory control circuit unit
US9146691B2 (en) Method for managing commands in command queue, memory control circuit unit and memory storage apparatus
KR20140114515A (ko) 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법
US9424177B2 (en) Clock switching method, memory controller and memory storage apparatus
JP2007179545A (ja) 不揮発性メモリをキャッシュとして用いる保存装置及びその管理方法
US11042453B2 (en) Database journaling method and apparatus
TWI587135B (zh) 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元
TW201732821A (zh) 資料傳輸方法、記憶體控制電路單元與記憶體儲存裝置
WO2015058493A1 (zh) 一种存储数据处理方法及装置
TWI658361B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US20140068153A1 (en) Wear management apparatus and method for storage system
TWI644210B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US9959060B1 (en) Data separation during host write with storage allocated based on traffic profiles
US11755242B2 (en) Data merging method, memory storage device for updating copied L2P mapping table according to the physical address of physical unit
JP2008278258A (ja) データ展開装置及びデータ展開方法
TWI553477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US7904669B2 (en) Information processing device, image pickup device, information processing method and computer program
US10191659B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
TWI467578B (zh) 錯誤處理方法、記憶體儲存裝置與記憶體控制電路單元
US9779001B2 (en) Mirroring device, control method thereof, and storage medium that maintain difference in remaining writable amounts of data
US20140089356A1 (en) Data storage device and operating method thereof
US20160117244A1 (en) Data writing method, memory control circuit unit and memory storage apparatus