TW201928678A - 用於動態執行記憶體回收資料儲存裝置與操作方法 - Google Patents
用於動態執行記憶體回收資料儲存裝置與操作方法 Download PDFInfo
- Publication number
- TW201928678A TW201928678A TW106144825A TW106144825A TW201928678A TW 201928678 A TW201928678 A TW 201928678A TW 106144825 A TW106144825 A TW 106144825A TW 106144825 A TW106144825 A TW 106144825A TW 201928678 A TW201928678 A TW 201928678A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- free
- interval
- flash memory
- value
- 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/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/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
- 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/0608—Saving storage space on storage systems
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
- G06F2212/1024—Latency reduction
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
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)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種用於動態執行記憶體回收流程之資料儲存裝置,包括一快閃記憶體以及一控制器。快閃記憶體包括複數個區塊,其中上述區塊之每一者包括複數個頁面。控制器耦接快閃記憶體,用以依據快閃記憶體中的至少一空閒區塊的數量、以及有效頁面為不同比例時所對應之複數個非空閒區塊的數量,在快閃記憶體執行一記憶體回收流程。記憶體回收流程係用以合併等區塊中的至少兩個非空閒區塊,以釋放至少一空閒區塊。
Description
本發明係關於一種包含快閃記憶體(FLASH memory)的資料儲存裝置,特別是關於在快閃記憶體上動態執行記憶體回收(garbage-collection,GC)之流程。
記憶體回收流程被廣泛使用於各種記憶體裝置中。記憶體回收流程特別被使用在大多數頁面為被用或空閒的無效率的區塊,合併這些無效率的區塊為一個有效率的區塊,而得到更多備用區塊。藉由規律地執行記憶體回收流程,能夠提升記憶體裝置的效率。
然而,是否執行記憶體回收流程通常是由一個臨界值所決定。當決定執行記憶體回收流程時,會降低記憶體裝置的效能。舉例而言,因為執行記憶體回收,造成寫入延遲的突然增加以及效能突然劣化。此外,記憶體裝置具有不同的操作狀態,能夠執行來自主機的各種指令。因此,需要一種動態調整的記憶體回收流程,防止記憶體裝置的效能突然劣化,並且配合各種操作狀態與主機指令。
本發明之一實施例提供了一種資料儲存裝置以及操作方法可動態調整預設值、而不是只有一個固定的預設值
來執行記憶體回收流程,以避免快閃記憶體的突然延遲。詳細而言,本發明更提供至少一臨界值用以判斷快閃記憶體中的有效頁面為不同比例時所對應之非空閒區塊的數量,動態調整記憶體回收的執行流程。藉由本發明所提出之操作方法來動態調整用以判斷是否執行記憶體回收流程的預設值,能夠增進記憶體回收的效率,並且避免影響到資料儲存裝置的效能。
本發明提供一種用於動態執行記憶體回收流程之資料儲存裝置,包括一快閃記憶體以及一控制器。快閃記憶體包括複數個區塊,其中上述區塊之每一者包括複數個頁面。控制器耦接快閃記憶體,用以依據快閃記憶體中的至少一空閒區塊的數量、以及有效頁面為不同比例時所對應之複數個非空閒區塊的數量,在快閃記憶體執行一記憶體回收流程。記憶體回收流程係用以合併等區塊中的至少兩個非空閒區塊,以釋放至少一空閒區塊。
控制器計算快閃記憶體的至少一空閒區塊的數量,並且判斷空閒區塊的數量是否小於一預設值。當空閒區塊的數量小於預設值時,控制器計算有效頁面之比例在第一區間時所對應之非空閒區塊的數量是否大於第一臨界值。當有效頁面之比例在第一區間時所對應之區塊的數量大於第一臨界值時,控制器以第一差距值遞減預設值。當有效頁面之比例在第一區間時所對應之區塊的數量小於或等於第一臨界值時,控制器計算有效頁面之比例在第二區間時所對應之區塊的數量是否大於第二臨界值。
再者,當有效頁面之比例在第二區間時所對應之區塊的數量大於第二臨界值時,控制器以第二差距值遞減預設值。當有效頁面之比例在第二區間時所對應之區塊的數量小於或等於第二臨界值時,控制器以第三差距值遞增預設值。此外,控制器耦接一主機,控制器更依據主機所傳送的指令在快閃記憶體執行記憶體回收流程。
本發明提供一種一種動態執行記憶體回收流程之操作方法,應用於一資料儲存裝置。資料儲存裝置包括一快閃記憶體以及一控制器,快閃記憶體包括複數個區塊,上述區塊之每一者包括複數個頁面。操作方法包括:計算快閃記憶體中的至少一空閒區塊的數量;計算有效頁面為不同比例時所對應之複數個非空閒區塊的數量;以及依據快閃記憶體中的至少一空閒區塊的數量、以及有效頁面為不同比例時所對應之非空閒區塊的數量,在快閃記憶體執行一記憶體回收流程,用以合併上述區塊中的至少兩個非空閒區塊,以釋放至少一空閒區塊。
關於本發明其他附加的特徵與優點,此領域之熟習技術人士,在不脫離本發明之精神和範圍內,當可根據本案實施方法中所揭露之資料儲存裝置與操作方法。
100‧‧‧資料儲存裝置
120‧‧‧控制器
140‧‧‧快閃記憶體
160-16N‧‧‧儲存矩陣
160_A、160_Z…16N_A、16N_Z‧‧‧區塊
160_A_1、160_Z_1…16N_A_X、16N_Z_X‧‧‧頁面
180‧‧‧隨機存取記憶體
200‧‧‧主機
DT‧‧‧表格
第1圖係顯示根據本發明一實施例所述之資料儲存裝置之方塊示意圖;第2圖係顯示根據本發明一實施例所述之計算快閃記憶
體之空閒區塊與非空閒區塊的示意圖;第3圖係顯示根據本發明另一實施例所述之計算快閃記憶體之空閒區塊與非空閒區塊的示意圖;第4圖係顯示根據本發明另一實施例所述之計算快閃記憶體之空閒區塊與非空閒區塊的示意圖;第5圖係顯示根據本發明一實施例所述之快閃記憶體之操作方法的流程圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明一實施例所述之資料儲存裝置100與主機200之示意圖。在一實施例中,資料儲存裝置100包括控制器120、快閃記憶體140以及隨機存取記憶體(RAM)180。資料儲存裝置100耦接主機200以傳送資料與指令、或是接收資料與指令。快閃記憶體140可以為非揮發性記憶體,例如反集閘快閃記憶體(NAND Flash)。資料儲存裝置100的例子可包含(但不限於):可攜式記憶裝置(諸如符合SD/MMC、CF、MS、XD或UFS標準之記憶卡)、固態硬碟(solid state drive,SSD)以及各種嵌入式(embedded)儲存裝置(諸如符合UFS或EMMC規格之嵌入式儲存裝置)。主機200可以為手機、平板電腦、筆記型電腦、導航機或車載系統等各種電子產品、或上述各種電
子產品中的處理器。
如第1圖所示,控制器120耦接快閃記憶體140以及隨機存取記憶體180。隨機存取記憶體180用以暫存以及預取控制器120所需之資料,或是用以暫存主機200要寫入快閃記憶體140之資料,以加快資料儲存裝置100之存取時間。控制器120藉由控制快閃記憶體140以叢集(cluster)為單位執行讀取運作的方式來對快閃記憶體140執行讀取運作。此外,控制器120耦接快閃記憶體140以相互傳送資料與指令或接收資料與指令。進一步而言,控制器120可包括具有韌體碼之唯讀記憶體(ROM)以及微控制器,並且微控制器執行韌體碼以操作或是存取快閃記憶體140。
快閃記憶體140包括複數個儲存矩陣(plane)160~16N。在一實施例中,每一儲存矩陣160~16N之一部分區塊組合成一超級區塊(super block),使得快閃記憶體140包括複數個超級區塊。詳細而言,儲存矩陣160~16N中的每一者更包括複數個區塊(block)。在一實施例中,快閃記憶體140具有4個儲存矩陣160~164(亦即CE0~CE3)。儲存矩陣160包括區塊160_A~160_Z,儲存矩陣16N包括區塊16N_A~16N_Z。對於儲存矩陣160而言,區塊160_A~160_Z中的每一者更包括複數個頁面。區塊160_A包括頁面160_A_1~160_A_X,區塊160_Z包括頁面160_Z_1~160_Z_X,並且每個頁面之大小為N個位元組,其中N為大於1之正整數。
舉例而言,儲存矩陣160~164之每一者係包括820的區塊,上述區塊的每一者係包括256個頁面,並且每個頁面
之大小為16K位元組(K-bytes)。此外,上述頁面160_A_1~16N_Z_X為實體頁面。控制器120在對快閃記憶體140執行寫入或儲存動作時,是藉由控制快閃記憶體140以實體頁面為單位來執行寫入或程式化的運作。
對於快閃記憶體140而言,其頁面160_A_1~16N_Z_X的每一者皆具有不同的實體位址。換言之,頁面160_A_1~16N_Z_X的每一者都具有一個實體位址,而頁面160_A_1~16N_Z_X的每一者的實體位址都是不同的。當資料儲存裝置100執行一寫入運作時,控制器120決定快閃記憶體140的一實體位址以寫入或儲存資料。此外,控制器120則分別對應上述複數個實體位址至複數個邏輯位址。因此,對於主機200而言,主機200係藉由邏輯位址,來讀取或寫入資料儲存裝置100所儲存於某個邏輯位址的資料。
在一實施例中,控制器120係用以依據快閃記憶體140中的空閒區塊的數量、以及快閃記憶體140中快閃記憶體中的有效頁面為不同比例時所對應之非空閒區塊的數量,在快閃記憶體140執行記憶體回收流程。記憶體回收流程係用以合併至少兩個非空閒區塊,從非空閒區塊中釋放出至少一個空閒的區塊。進一步而言,區塊160_A~16N_Z可依據是否儲存資料而區分為空閒區塊以及非空閒區塊。空閒區塊的特徵在於其每一個頁面都是空的、沒有寫入任何資料。此外,非空閒區塊的特徵在於其至少一個頁面有寫入資料。
本發明所提出之記憶體回收流程係根據可動態調整的預設值、而不是只有一個固定的預設值來執行或操作,
以避免快閃記憶體140的突然延遲。詳細而言,本發明更提供至少一臨界值用以判斷快閃記憶體中的有效頁面為不同比例時所對應之非空閒區塊的數量,動態調整記憶體回收的執行流程。藉由本發明所提出之操作方法來動態調整用以判斷是否執行記憶體回收流程的預設值,能夠增進記憶體回收的效率,並且避免影響到資料儲存裝置100的效能。
在一實施例中,控制器120計算快閃記憶體140中的至少一空閒區塊的數量、以及有效頁面為不同比例時所對應之複數個非空閒區塊的數量,判斷是否執行記憶體回收流程。當空閒區塊的數量小於預設值時,控制器計算有效頁面之比例在第一區間時所對應之該等非空閒區塊的數量是否大於第一臨界值。當有效頁面之比例在該第一區間時所對應之非空閒區塊的數量大於第一臨界值時,控制器以第一差距值遞減該預設值。因此,本發明所提出之操作方法係根據可動態調整的預設值、而不是只有一個固定的預設值來執行或操作記憶體回收流程。
第2圖係顯示根據本發明一實施例所述之計算快閃記憶體140之空閒區塊與非空閒區塊的示意圖。第2圖之實施例係統計儲存矩陣160之區塊160_A~160_Z的資料儲存狀態,但不以此為限。在其他實施例中,亦可統計兩個以上的儲存矩陣的全部或部分區塊的資料儲存狀態。
在第2圖之實施例中,控制器120計算出儲存矩陣160具有6個空閒區塊以及20個非空閒區塊。然後,控制器120判斷空閒區塊的數量是否大於預設值。如果空閒區塊的數量
大於預設值,表示空閒區塊的數量夠多,不需要啟動記憶體回收流程以釋放更多的空閒區塊。如果空閒區塊的數量小於或等於預設值,表示空閒區塊的數量不多,需要啟動記憶體回收流程以釋放更多的空閒區塊。
為了能夠有效率的執行記憶體回收流程,本發明之控制器120更進一步計算有效頁面為不同比例時所對應之非空閒區塊的數量,以遞增或遞減上述預設值。以下將說明各個非空閒區塊的有效頁面、以及如何計算有效頁面為不同比例時所對應之非空閒區塊的數量。
如第2圖所示,區塊160_B已全部寫滿資料,無法再寫入其他資料。因此,區塊160_B的已寫入資料的有效頁面相對於區塊160_B之全部頁面的比例約為100%。此外,區塊160_F的有效頁面的比例約為10%,區塊160_G的有效頁面的比例約為30%,區塊160_I的有效頁面的比例約為50%,區塊160_L的有效頁面的比例約為70%。如下列表格1所示,控制器120係藉由表格化方式統計有效頁面為不同比例時所對應之非空閒區塊的數量,並且將表格儲存於隨機存取記憶體180。
因為有效頁面之比例分布為0%至100%,因此可區分為五個區間。其中,第一區間的有效頁面之比例分布為0%至20%,第二區間的有效頁面之比例分布為21%至40%,以此類堆。由此可知,第一區間的區塊的有效頁面比例最低。相較於其他區間,第一區間的區塊能夠最有效率地進行合併以釋放出空閒區塊,並且執行記憶體回收流程所需耗費的時間也是最少的。在此實施例中,控制器120計算有效頁面之比例在第一區間時所對應之非空閒區塊的數量是否大於第一臨界值(例如臨界值為6)。
如表格1所示,第一區間時所對應之非空閒區塊的數量為10,大於第一臨界值。換言之,快閃記憶體140具有相當多數量的第一區間的非空閒區塊,能夠快速地藉由合併而取得空閒區塊。由此可知,控制器120可延後或是暫緩執行記憶體回收流程,以避免資料儲存裝置100的效能受到影響。因此,控制器120以第一差距值(例如第一差距值為1)遞減預設值。遞減後的預設值變小,表示控制器120執行記憶體回收流程的條件更趨嚴苛,目前不需要執行記憶體回收流程。
要注意的是,在其他實施例中,控制器120亦可計算有效頁面之比例在第一區間時所對應之非空閒區塊相對於全部非空閒區塊的比例是否大於第一臨界值(例如臨界值為20%)。如表格1所示,第一區間時所對應之非空閒區塊的比例為50%,大於第一臨界值。因此,控制器120以第一差距值遞減預設值(例如第一差距值為2%),則遞減後之預設值為
18%。
第3圖係顯示根據本發明另一實施例所述之計算快閃記憶體140之空閒區塊與非空閒區塊的示意圖。在此實施例中係包括3個空閒區塊以及23個非空閒區塊。表格2顯示其有效頁面為不同比例時所對應之非空閒區塊的數量。
在此實施例中,有效頁面之比例在第一區間時所對應之非空閒區塊的數量或比例,並未大於第一臨界值。因此,控制器120不以第一差距值遞減預設值,並且判斷有效頁面之比例在第二區間時所對應之非空閒區塊的數量或比例是否大於第二臨界值(例如第二臨界值為6或27%)。要注意的是,上述第二區間的數值(21%~40%)係大於第一區間的數值(0%~20%)。
如表格2所示,第二區間時所對應之非空閒區塊的數量為10,大於第二臨界值。換言之,快閃記憶體140具有相當多數量的第二區間的非空閒區塊,能夠快速地藉由合併而取得空閒區塊。因此,控制器120以第二差距值(例如第二差距值為1)遞減預設值。遞減後的預設值變小,表示控制器120
執行記憶體回收流程的條件更趨嚴苛,目前不需要執行記憶體回收流程。
第4圖係顯示根據本發明另一實施例所述之計算快閃記憶體140之空閒區塊與非空閒區塊的示意圖。在此實施例中係包括3個空閒區塊以及23個非空閒區塊。表格3顯示其有效頁面為不同比例時所對應之非空閒區塊的數量。
在此實施例中,有效頁面之比例在第一區間時所對應之非空閒區塊的數量或比例並未大於第一臨界值,並且有效頁面之比例在第二區間時所對應之非空閒區塊的數量或比例並未大於第二臨界值。換言之,快閃記憶體140具有相當少的第一區間與第二區間的非空閒區塊,需要耗費較長時間進行合併而取得空閒區塊。
因此,在此實施例中,控制器120以第三差距值(例如第二差距值為1)遞增預設值。遞增後的預設值變大,表示控制器120執行記憶體回收流程的條件更趨寬鬆,需要盡早執行記憶體回收流程釋放出空閒區塊,以避免發生空閒區塊數量為0的情況。
在上述實施例中,控制器120依據有效頁面為不同比例時所對應之非空閒區塊的數量,決定是否執行記憶體回收流程。在其他實施例中,為了配合主機200的運作,控制器係依據主機200所傳送的指令,在快閃記憶體140執行記憶體回收流程。換言之,主機200可強制要求控制器120執行記憶體回收流程,以符合其存取資料的需求。
第5圖係顯示根據本發明一實施例所述之快閃記憶體140之操作方法的流程圖。在步驟S510中,控制器120計算快閃記憶體140的空閒區塊的數量。在步驟S511,控制器120計算快閃記憶體140中的有效頁面為不同比例時所對應之非空閒區塊的數量。在步驟S512,控制器120依據快閃記憶體140中的空閒區塊的數量、以及有效頁面為不同比例時所對應之非空閒區塊的數量,決定是否執行快閃記憶體140的記憶體回收流程。
在步驟S514,控制器120判斷空閒區塊的數量是否小於預設值。如果空閒區塊的數量並未小於預設值,則繼續執行步驟S514。如果空閒區塊的數量小於預設值,則執行步驟S516,控制器120計算有效頁面之比例在第一區間時所對應之非空閒區塊的數量是否大於第一臨界值。
如果有效頁面之比例在第一區間時所對應之非空閒區塊的數量大於第一臨界值,則執行步驟S518,控制器120以第一差距值遞減預設值。如果有效頁面之比例在第一區間時所對應之非空閒區塊的數量並未大於第一臨界值,則執行步驟S520,控制器120判斷有效頁面之比例在第二區間時所對
應之非空閒區塊的數量是否大於第二臨界值。如果是,則執行步驟S522,控制器120以第二差距值遞減預設值。如果否,則執行步驟S524,控制器120以第三差距值遞增預設值。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
在本說明書以及申請專利範圍中的序數,例如「第一」、「第二」、「第三」等等,彼此之間並沒有順序上的先後關係,其僅用於標示區分兩個具有相同名字之不同元件。本發明說明書中「耦接」一詞係泛指各種直接或間接之電性連接方式。本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (18)
- 一種用於動態執行一記憶體回收(garbage-collection)流程之資料儲存裝置,包括:一快閃記憶體(FLASH memory),包括複數個區塊,其中該等區塊之每一者包括複數個頁面;以及一控制器,耦接該快閃記憶體,用以依據該快閃記憶體中的至少一空閒區塊的數量、以及有效頁面為不同比例時所對應之複數個非空閒區塊的數量,在該快閃記憶體執行該記憶體回收流程,其中該記憶體回收流程係用以合併該等區塊中的至少兩個該等非空閒區塊,以釋放該至少一空閒區塊。
- 如申請專利範圍第1項所述之用於動態執行記憶體回收流程之資料儲存裝置,其中:該控制器計算該快閃記憶體的該至少一空閒區塊的數量,並且判斷該至少一空閒區塊的數量是否小於一預設值。
- 如申請專利範圍第2項所述之用於動態執行記憶體回收流程之資料儲存裝置,其中:當該至少一空閒區塊的數量小於該預設值時,該控制器計算有效頁面之比例在一第一區間時所對應之該等非空閒區塊的數量是否大於一第一臨界值。
- 如申請專利範圍第3項所述之用於動態執行記憶體回收流程之資料儲存裝置,其中:當該有效頁面之比例在該第一區間時所對應之該等非空閒區塊的數量大於該第一臨界值時,該控制器以一第一差距 值遞減該預設值。
- 如申請專利範圍第3項所述之用於動態執行記憶體回收流程之資料儲存裝置,其中:當該有效頁面之比例在該第一區間時所對應之該等非空閒區塊的數量小於或等於該第一臨界值時,該控制器計算該有效頁面之比例在一第二區間時所對應之該等非空閒區塊的數量是否大於一第二臨界值。
- 如申請專利範圍第5項所述之用於動態執行記憶體回收流程之資料儲存裝置,其中:該第二區間的數值係大於該第一區間的數值。
- 如申請專利範圍第5項所述之用於動態執行記憶體回收流程之資料儲存裝置,其中:當該有效頁面之比例在該第二區間時所對應之該等非空閒區塊的數量大於該第二臨界值時,該控制器以一第二差距值遞減該預設值。
- 如申請專利範圍第5項所述之用於動態執行記憶體回收流程之資料儲存裝置,其中:當該有效頁面之比例在該第二區間時所對應之該等非空閒區塊的數量小於或等於該第二臨界值時,該控制器以一第三差距值遞增該預設值。
- 如申請專利範圍第2項所述之用於動態執行記憶體回收流程之資料儲存裝置,更包括:該控制器耦接一主機,該控制器更依據該主機所傳送的指令在該快閃記憶體執行該記憶體回收流程。
- 一種動態執行一記憶體回收(garbage-collection)流程之操作方法,應用於一資料儲存裝置,該資料儲存裝置包括一快閃記憶體(FLASH memory)以及一控制器,該快閃記憶體包括複數個區塊,該等區塊之每一者包括複數個頁面,該操作方法包括:計算該快閃記憶體中的至少一空閒區塊的數量;計算有效頁面為不同比例時所對應之複數個非空閒區塊的數量;以及依據該快閃記憶體中的至少一空閒區塊的數量、以及該有效頁面為不同比例時所對應之該等非空閒區塊的數量,在該快閃記憶體執行該記憶體回收流程,用以合併該等區塊中的至少兩個非空閒區塊,以釋放該至少一空閒區塊。
- 如申請專利範圍第10項所述之用於動態執行記憶體回收流程之操作方法,更包括:計算該快閃記憶體的該至少一空閒區塊的數量;以及判斷該至少一空閒區塊的數量是否小於一預設值。
- 如申請專利範圍第11項所述之用於動態執行記憶體回收流程之操作方法,其中:當該至少一空閒區塊的數量小於該預設值時,計算有效頁面之比例在一第一區間時所對應之該等非空閒區塊的數量是否大於一第一臨界值。
- 如申請專利範圍第12項所述之用於動態執行記憶體回收流程之操作方法,其中:當該有效頁面之比例在該第一區間時所對應之該等非空閒 區塊的數量大於該第一臨界值時,使用一第一差距值遞減該預設值。
- 如申請專利範圍第12項所述之用於動態執行記憶體回收流程之操作方法,其中:當該有效頁面之比例在該第一區間時所對應之該等非空閒區塊的數量小於或等於該第一臨界值時,計算該有效頁面之比例在一第二區間時所對應之該等非空閒區塊的數量是否大於一第二臨界值。
- 如申請專利範圍第14項所述之用於動態執行記憶體回收流程之操作方法,其中:該第二區間的數值係大於該第一區間的數值。
- 如申請專利範圍第14項所述之用於動態執行記憶體回收流程之操作方法,其中:當該有效頁面之比例在該第二區間時所對應之該等非空閒區塊的數量大於該第二臨界值時,使用一第二差距值遞減該預設值。
- 如申請專利範圍第14項所述之用於動態執行記憶體回收流程之操作方法,其中:當該有效頁面之比例在該第二區間時所對應之該等非空閒區塊的數量小於或等於該第二臨界值時,使用一第三差距值遞增該預設值。
- 如申請專利範圍第11項所述之用於動態執行記憶體回收流程之操作方法,更包括:耦接該控制器至一主機;以及 依據該主機所傳送的指令在該快閃記憶體執行該記憶體回收流程。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106144825A TWI643065B (zh) | 2017-12-20 | 2017-12-20 | 用於動態執行記憶體回收資料儲存裝置與操作方法 |
CN201810710169.4A CN109947355B (zh) | 2017-12-20 | 2018-07-02 | 用于动态执行存储器回收数据储存装置与操作方法 |
US16/101,742 US10592412B2 (en) | 2017-12-20 | 2018-08-13 | Data storage device and operating method for dynamically executing garbage-collection process |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106144825A TWI643065B (zh) | 2017-12-20 | 2017-12-20 | 用於動態執行記憶體回收資料儲存裝置與操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI643065B TWI643065B (zh) | 2018-12-01 |
TW201928678A true TW201928678A (zh) | 2019-07-16 |
Family
ID=65431904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106144825A TWI643065B (zh) | 2017-12-20 | 2017-12-20 | 用於動態執行記憶體回收資料儲存裝置與操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10592412B2 (zh) |
CN (1) | CN109947355B (zh) |
TW (1) | TWI643065B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11307982B2 (en) | 2020-09-09 | 2022-04-19 | Phison Electronics Corp. | Memory management method with a data merging process based on risk physical units and distribution counts, memory storage device and memory control circuit unit |
TWI782654B (zh) * | 2021-02-18 | 2022-11-01 | 慧榮科技股份有限公司 | 垃圾回收操作的管理機制 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058794B (zh) * | 2018-01-19 | 2022-11-01 | 上海宝存信息科技有限公司 | 用于动态执行垃圾回收数据储存装置与操作方法 |
CN111651371B (zh) | 2019-03-04 | 2023-06-16 | 慧荣科技股份有限公司 | 非对称型平面管理方法以及数据存储装置及其控制器 |
TWI781846B (zh) * | 2019-03-04 | 2022-10-21 | 慧榮科技股份有限公司 | 非對稱型平面管理方法以及資料儲存裝置及其控制器 |
CN110333770B (zh) | 2019-07-10 | 2023-05-09 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
EP4283473A1 (en) * | 2021-08-02 | 2023-11-29 | Samsung Electronics Co., Ltd. | Device and method for reduction of garbage collection operations |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444462B2 (en) * | 2006-09-28 | 2008-10-28 | Sandisk Corporation | Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer |
US7908423B2 (en) * | 2007-07-25 | 2011-03-15 | Silicon Motion, Inc. | Memory apparatus, and method of averagely using blocks of a flash memory |
EP2441004B8 (en) * | 2009-06-12 | 2020-02-19 | Violin Systems LLC | Memory system having persistent garbage collection |
TWI605458B (zh) * | 2012-04-25 | 2017-11-11 | Sony Corp | Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods |
TWI515737B (zh) * | 2013-12-09 | 2016-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其資料抹除方法 |
US9542119B2 (en) * | 2014-07-09 | 2017-01-10 | Toshiba Corporation | Solid-state mass storage media having data volumes with different service levels for different data types |
TW201606778A (zh) * | 2014-08-08 | 2016-02-16 | Toshiba Kk | 記憶體系統、主機裝置、資訊處理系統 |
KR20160027805A (ko) * | 2014-09-02 | 2016-03-10 | 삼성전자주식회사 | 비휘발성 메모리 장치를 위한 가비지 컬렉션 방법 |
US9606733B2 (en) * | 2014-11-10 | 2017-03-28 | Silicon Motion, Inc. | Data storage device and operating method |
KR102371916B1 (ko) * | 2015-07-22 | 2022-03-07 | 삼성전자주식회사 | 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법 |
US9645922B2 (en) * | 2015-09-10 | 2017-05-09 | HoneycombData Inc. | Garbage collection in SSD drives |
TWI591635B (zh) * | 2016-02-05 | 2017-07-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
-
2017
- 2017-12-20 TW TW106144825A patent/TWI643065B/zh active
-
2018
- 2018-07-02 CN CN201810710169.4A patent/CN109947355B/zh active Active
- 2018-08-13 US US16/101,742 patent/US10592412B2/en active Active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11307982B2 (en) | 2020-09-09 | 2022-04-19 | Phison Electronics Corp. | Memory management method with a data merging process based on risk physical units and distribution counts, memory storage device and memory control circuit unit |
TWI775143B (zh) * | 2020-09-09 | 2022-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI782654B (zh) * | 2021-02-18 | 2022-11-01 | 慧榮科技股份有限公司 | 垃圾回收操作的管理機制 |
US11494299B2 (en) | 2021-02-18 | 2022-11-08 | Silicon Motion, Inc. | Garbage collection operation management with early garbage collection starting point |
US11681615B2 (en) | 2021-02-18 | 2023-06-20 | Silicon Motion, Inc. | Garbage collection operation management based on overall valid page percentage of source block and candidate source block |
US11704241B2 (en) | 2021-02-18 | 2023-07-18 | Silicon Motion, Inc. | Garbage collection operation management with early garbage collection starting point |
US11809312B2 (en) | 2021-02-18 | 2023-11-07 | Silicon Motion, Inc. | Garbage collection operation management based on overall spare area |
Also Published As
Publication number | Publication date |
---|---|
TWI643065B (zh) | 2018-12-01 |
CN109947355B (zh) | 2022-05-24 |
CN109947355A (zh) | 2019-06-28 |
US20190188129A1 (en) | 2019-06-20 |
US10592412B2 (en) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI643065B (zh) | 用於動態執行記憶體回收資料儲存裝置與操作方法 | |
CN110058794B (zh) | 用于动态执行垃圾回收数据储存装置与操作方法 | |
JP6414853B2 (ja) | メモリシステムおよび制御方法 | |
US20150378888A1 (en) | Controller, flash memory apparatus, and method for writing data into flash memory apparatus | |
US10942677B2 (en) | Method for performing access management of memory device, associated memory device and controller thereof, associated host device and associated electronic device | |
CN105378682A (zh) | 持久存储器中数据的观察 | |
CN112114742B (zh) | 数据储存装置与数据处理方法 | |
TW201415233A (zh) | 使用適應性壓縮比之刷新指令之快速執行 | |
US10203899B2 (en) | Method for writing data into flash memory apparatus, flash memory apparatus, and storage system | |
TWI657336B (zh) | 用以檢測資料儲存裝置之資料儲存方法及其資料儲存裝置 | |
KR20110046232A (ko) | 데이터 무효화 동작을 수행하는 저장 장치 및 그것의 데이터 무효화 방법 | |
JP2017010396A (ja) | ストレージ装置、キャッシュ書込制御方法及びキャッシュ書込制御プログラム | |
WO2016160164A1 (en) | Improving storage cache performance by using compressibility of the data as a criteria for cache insertion | |
TWI710905B (zh) | 資料儲存裝置及邏輯至物理位址映射表之載入方法 | |
EP2799996A1 (en) | Information processing apparatus, control circuit, control program, and control method | |
US10055356B2 (en) | Memory device and method for controlling memory device | |
TWI621021B (zh) | 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 | |
US10025706B2 (en) | Control device, storage device, and storage control method | |
KR101626218B1 (ko) | 블록 기반의 페이지 매핑 방법 | |
KR101549569B1 (ko) | 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치 | |
CN115328405A (zh) | 数据处理方法、装置及电子设备 | |
US9946656B2 (en) | Completion packet return based on eviction or flush | |
JP6429197B2 (ja) | 論理物理アドレス変換テーブルの制御方法及びメモリ装置 | |
US20230418740A1 (en) | Systems And Methods With Variable Size Super Blocks In Zoned Namespace Devices | |
US10739998B2 (en) | Memory system |