TWI619018B - 可用於資料儲存裝置之垃圾蒐集方法 - Google Patents
可用於資料儲存裝置之垃圾蒐集方法 Download PDFInfo
- Publication number
- TWI619018B TWI619018B TW105136580A TW105136580A TWI619018B TW I619018 B TWI619018 B TW I619018B TW 105136580 A TW105136580 A TW 105136580A TW 105136580 A TW105136580 A TW 105136580A TW I619018 B TWI619018 B TW I619018B
- Authority
- TW
- Taiwan
- Prior art keywords
- data blocks
- data
- garbage collection
- collection method
- item
- 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
-
- 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
- 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
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- 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/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/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
- 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
- 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/068—Hybrid storage device
-
- 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
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明提出一種可用於一資料儲存裝置之垃圾蒐集方法。此垃圾蒐集方法包括下列步驟:自前景模式進入背景模式;從複數個使用中資料區塊中選取複數個來源資料區塊;將對照表切割成複數個子對照表,並從上述子對照表中選取一目標子對照表;從複數個備用資料區塊中選取一目的資料區塊;以及依序將目標子對照表所儲存的有效資料的對應關係從上述來源資料區塊更新至目的資料區塊。
Description
本發明是有關於資料儲存之相關技術,尤其是有關於一種可用於一資料儲存裝置之垃圾蒐集方法。
資料儲存裝置,尤其是採用非揮發性儲存媒體的資料儲存裝置,包括複數個資料區塊,每一資料區塊包含複數個資料頁,每一資料頁用以儲存至少一儲存單位的資料,儲存單位可為512B(Byte)或較佳為4KB。資料區塊又依據其儲存資料與否而區分為空白資料區塊(或稱為備用資料區塊)與非空白資料區塊(或稱使用中資料區塊)。為了進行資料的管理及存取,資料儲存裝置需要建立及儲存一個邏輯至實體位址對照表(Host logical-to-Flash physical address mapping table,H2F table),在本案中將它簡稱為對照表,並於資料儲存裝置運作時將對照表複製至動態隨機存取記憶體(Dynamic random access memory,DRAM),以增加資料的管理及存取上的效率。另外,對照表的大小依其記錄內容而不同,較常見的大小為資料儲存裝置的資料儲存容量的1/1000,以256GB大小的資料儲存裝置為例,對照表的大小為256MB,因此,配置有DRAM的大小較佳為大於或等於256MB,以儲存一整個對照表。
對於沒有配置動態隨機存取記憶體或者僅配置小型DRAM(即DRAM的大小不足以儲存一整個對照表)的資料儲存裝置而言,如何運用其配置的靜態隨機存取記憶體(Static random access memory,
SRAM)或小型DRAM以進行資料的管理及存取,存在著技術上的需求。
本發明之一目的在提供一種可用於一資料儲存裝置之垃圾蒐集方法,其可減少子對照表的抽換次數,進而降低資料儲存裝置所耗的資源。
本發明提出一種可用於一資料儲存裝置之垃圾蒐集方法,其包括下列步驟:自前景模式進入背景模式;從複數個使用中資料區塊中選取複數個來源資料區塊;將對照表切割成複數個子對照表,並從上述子對照表中選取一目標子對照表;從複數個備用資料區塊中選取一目的資料區塊;以及依序將目標子對照表所儲存的有效資料的對應關係從上述來源資料區塊更新至目的資料區塊。
由於本發明乃是以每次依據一子對照表之完整記錄內容的方式來對資料區塊執行一垃圾蒐集程序,因此可減少子對照表的抽換次數,進而降低資料儲存裝置所耗的資源。
100‧‧‧主機
110‧‧‧中央處理單元
120‧‧‧連接介面
200‧‧‧資料儲存裝置
210‧‧‧控制單元
212‧‧‧介面邏輯
214‧‧‧微處理器
216‧‧‧控制邏輯
218‧‧‧揮發性儲存媒體
220‧‧‧非揮發性儲存媒體
221、302~308、312‧‧‧資料區塊
310‧‧‧目的資料區塊
322~326‧‧‧子對照表
322、322’、322”‧‧‧目標子對照表
S202~S212‧‧‧步驟
圖1繪有依照本發明一實施例之資料儲存裝置及其與主機的電性耦接關係;圖2為依照本發明一實施例之垃圾蒐集方法的流程圖;圖3繪有資料區塊302~308的實體至邏輯位址對照表的示意圖;圖4係用以說明將有效資料從資料區塊302~308複製至資料區塊310;圖5係用以說明將被複製的資料的對應關係記錄至目標子對照表322並成為目標子對照表322’;圖6係用以說明依序將LBA值為0~15的資料從資料區塊308複製至資料區塊312;
圖7係用以說明將被複製的資料的對應關係記錄至目標子對照表322’以成為目標子對照表322”。
圖1繪有依照本發明一實施例之資料儲存裝置及其與主機的電性耦接關係。請參照圖1,主機100主要包括有中央處理單元110與連接介面120。連接介面120適於電性耦接資料儲存裝置200。中央處理單元110用以透過連接介面120傳送命令、資料給資料儲存裝置200,例如是傳送讀取命令給資料儲存裝置200,或是傳送寫入命令及欲寫入資料儲存裝置200的資料給資料儲存裝置200。而在此例中,主機100包括以電腦、手機、平板、相機或是其他具運算功能的手持式電子裝置來實現。
資料儲存裝置200主要包括有控制單元210與非揮發性儲存媒體220。控制單元210係電性耦接非揮發性儲存媒體220,並用以控制非揮發性儲存媒體220的操作(例如進行資料的存取與抹除)。在此例中,非揮發性儲存媒體220例如是以快閃記憶體(Flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)等具有長時間資料保存之記憶體裝置來實現。非揮發性儲存媒體220具有多個資料區塊(如標示221所示),而每一資料區塊具有多個資料頁(Page)。在此例中,每一資料區塊具有十個資料頁,分別以0~9來標示之。資料儲存裝置200可以更包括有一個小型DRAM,此DRAM的大小不足以儲存一整個對照表,而一整個對照表的大小較佳為大於或等於非揮發性儲存媒體220的儲存容量的千分之一。
控制單元210主要包括有介面邏輯212、微處理器214、控制邏輯216與揮發性儲存媒體218,其中揮發性儲存媒體218例如是以靜態隨機存取記憶體來實現。控制單元210之微處理器214係電性耦接介面邏輯212與控制邏輯216,而其中控制邏輯216又電性耦接非揮
發性儲存媒體220與揮發性儲存媒體218。微處理器214用以透過控制邏輯216存取非揮發性儲存媒體220與揮發性儲存媒體218中的資料,且微處理器214還用以透過介面邏輯212接收來自主機100之命令或資料,命令例如:寫入命令、讀取命令、或傾倒(flush)命令等。
在下述的說明中將以未配置小型DRAM的資料儲存裝置200為例進行本發明資料儲存裝置之垃圾蒐集方法的說明,然而,本發明資料儲存裝置之垃圾蒐集方法亦可適用於配置小型DRAM的資料儲存裝置200,故不以此為限。
圖2即為依照本發明一實施例之垃圾蒐集方法的流程圖,請同時參照圖1與圖2。步驟S202:自前景模式(Foreground mode)進入背景模式(Background mode)。當主機100停止傳送命令或資料,或非揮發性儲存媒體220的備用區塊(spare data block)的數目低於一臨界值時,或自其他電力狀態(power state)進入節電(power saving)狀態,或其他特定的狀態時,資料儲存裝置200將自前景模式進入背景模式。非揮發性儲存媒體220包含複數個資料區塊,假設總共有65536個資料區塊,分別為資料區塊#0~#65535,其中,資料區塊#0~資料區塊#59999為使用中(in-use)資料區塊,資料區塊#60000~資料區塊#65535為備用資料區塊。
步驟S204:從複數個使用中資料區塊中選取複數個來源資料區塊,其中,複數個來源資料區塊中的其中一個資料區塊乃複數個使用中資料區塊中具有最小有效資料數(least valid data count)者;或者,複數個來源資料區塊的其中一個資料區塊乃複數個使用中資料區塊中具有最大或最小抹寫次數(most or least erase count)者;或者,複數個來源資料區塊的其中一個資料區塊乃複數個使用中資料區塊中具有最大或最小讀取次數(most or least read count)者;或者,複數個來源資料區塊係從複數個使用中資料區塊中隨機選取;又或者,複數個來源資料區塊係從複數個使用中資料區塊中依編號依序選取。如圖3
所示,控制單元210會自60000個使用中資料區塊中挑選出複數個使用中資料區塊,例如:資料區塊302~308,分別是資料區塊#1、#20、#300以及#4000,作為來源資料區塊。此4個來源資料區塊較佳為60000個使用中資料區塊中具有最小有效資料數的前4個;或者,此4個來源資料區塊為60000個使用中資料區塊中具有最小抹寫次數的前4個;或者,此4個來源資料區塊係從60000個使用中資料區塊中隨機選取;又或者,此4個來源資料區塊係60000個使用中資料區塊中資料區塊編號的最前4個資料區塊,即資料區塊#0~#3,或是最後4個,資料區塊#59996~#59999。另外,圖3的資料區塊302~308的實體至邏輯位址對照表(Flash physical-to-Host logical address mapping table,F2H table)為示意圖,用以進行下之說明,並不以此為限。
步驟S206:將對照表切割成複數個子對照表,並從複數個子對照表選取一個目標子對照表,其中,目標子對照表較佳係用以管理其中一個來源資料區塊;或者,目標子對照表係從複數個子對照表中依序選取,或者,目標子對照表係從複數個子對照表中隨機選取;另外,目標子對照表的大小較佳大於等於來源資料區塊的大小;另外,對照表的內容較佳係以LBA為索引依序建立,亦可依LBA的接收順序依序建立。假設對照表的大小為256MB,而揮發性儲存媒體218的儲存容量僅64KB,或者僅保留64KB的容量以儲存一個子對照表,則控制單元210將對照表切割成4000個子對照表,分別為子對照表#0~#3999,使得子對照表的大小與揮發性儲存媒體218的儲存容量一致。假設目標子對照表係從複數個子對照表中依序選出,則首先被選取的子對照表可以是子對照表#0或子對照表#3999。假設目標子對照表係從複數個子對照表中隨機選取,則子對照表#1000可能首先被選取。假設對照表的內容係以LBA為索引依序建立,子對照表322~326分別對應至子對照表#0、#1以及#625。資料區塊302~308所儲存的資料的實體至邏輯位址的對應關係(簡稱為對應關係),其中,標號x表示無效的資料,標號FF
表示無此資料的對應關係的記錄。由於資料區塊302的第1筆有效資料的LBA的值為0,經由位址的計算,LBA的值為0乃對應至是子對照表#0的第1筆記錄,故子對照表322為首先被選取為目標子對照表。另外,位址的計算為習知技藝,故不多作說明。
步驟S208:從複數個備用資料區塊中選取一個目的資料區塊,其中,目的資料區塊仍從複數個備用資料區塊中隨機選取;或者,目的資料區塊仍從複數個備用資料區塊中依序選取;或者,目的資料區塊乃複數個備用資料區塊中具有最大抹寫次數(most erase count)者。假設控制單元210從資料區塊#60000~#65535中選取一個備用資料區塊,例如資料區塊#60000,作為目的資料區塊310,如果是依序選取,則資料區塊#60000或資料區塊#65535被選取為目的資料區塊;如果是選取具有最大抹寫次數者,則目的資料區塊可能是資料區塊#65432,在下述說明中,將以資料區塊#60000作為資料區塊310以進行說明,但不以此為限。
步驟S210:依序將目標子對照表所儲存的資料的對應關係從複數個來源資料區塊更新至目的資料區塊,其中,更新包括將複數個來源資料區塊的資料複製至目的資料區塊。請同時參考圖3~7,如圖3所示,目標子對照表322乃記錄LBA的值為0~15的資料的對應關係,這些資料分別儲存在資料區塊302~308,如圖4所示,依序將LBA的值為0~15的有效資料,如標記S所示,從資料區塊302~308複製至資料區塊310,並將被複製的資料的對應關係記錄至目標子對照表322並成為目標子對照表322’,一如圖5所示。由於資料區塊304所儲存的資料為無效資料或有效資料的對應關係已被更新,因此,資料區塊304不包含任何有效資料,因此可以被回收成為備用資料區塊,達到垃圾蒐集的目的。由於在配置小型DRAM的資料儲存裝置上進行子對照表的替換(swap)會需要頗長的等待時間,而本發明垃圾蒐集方法乃將(目標)子對照表內容完成更新之後,再進行子對照表的替換,不但能達到
垃圾蒐集的目的,因為減少了對照表的替換頻率,所以也減少執行垃圾蒐集所需的時間。
步驟S212:判斷目標子對照表所儲存的資料的對應關係是否完成更新,如果是則結束本發明垃圾蒐集方法,如果否,則執行步驟S208。以上述為例,由於資料區塊310的大小有限,因此,目標子對照表322僅有部份資料的對應關係完成更新。因此,步驟S212的判斷結果為否,當步驟S208被重新執行時,另一個資料區塊,例如,資料區塊#60001,如資料區塊312所示,成為目的資料區塊。如圖6所示,依序將LBA值為0~15的資料,如標記Y所示,從資料區塊308複製至資料區塊312,並將被複製的資料的對應關係記錄至目標子對照表322’以成為目標子對照表322”,如圖7所示。此時,目標子對照表322所儲存的資料的對應關係已經全部完成更新(目標子對照表322已更新為目標子對照表322”),結束本發明垃圾蒐集方法。
當再一次執行本發明垃圾蒐集方法,由於資料區塊302的第1筆有效資料的LBA的值為23,經由位址的計算,LBA的值為23乃是子對照表#1的第8筆記錄,故子對照表324將被選取為目標子對照表。當子對照表324完成更新後,資料區塊302以及306亦可被回收成備用資料區塊。
值得一提的是,步驟S202~S208的執行順序不以上述為限,例如,亦可先執行步驟S206,即先選取目標子對照表,再執行步驟S204,選取複數個來源資料區塊以及步驟S208,選取一個目的資料區塊,使用者可依其實際需求而進行調整。
綜上所述,由於本發明乃是以每次依據一子對照表之完整記錄內容的方式來對資料區塊執行一垃圾蒐集程序,本發明可有效降低執行垃圾蒐集程序時子對照表的抽換次數,進而降低資料儲存裝置所耗的資源及時間,達到本發明之目的。
S202~S212‧‧‧步驟
Claims (17)
- 一種可用於一資料儲存裝置之垃圾蒐集方法,其包括:自一前景模式進入一背景模式;從複數個使用中資料區塊中選取複數個來源資料區塊;將一對照表切割成複數個子對照表,並從該些子對照表選取一目標子對照表,其中,該目標子對照表係用以管理其中一該等來源資料區塊;從複數個備用資料區塊中選取一目的資料區塊;以及依序將該目標子對照所儲存的資料的對應關係從該些來源資料區塊更新至該目的資料區塊,其中,所述更新包括將該些來源資料區塊的資料複製至該目的資料區塊。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其更包括判斷該目標子對照表所儲存的資料的對應關係是否全部完成更新,當判斷為否時則自該些備用資料區塊中選取另一目的資料區塊。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中該些來源資料區塊的其中一資料區塊係該些使用中資料區塊中具有有效資料數的極端值者。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中該些來源資料區塊的其中一資料區塊係該些使用中資料區塊中具有抹寫次數的極端值者。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中該些來源資料區塊中的其中一資料區塊係該些使用中資料區塊中具有讀取次數的極端值者。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中該些來源資料區塊係從該些使用中資料區塊中隨機選取。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中該些來源資料區塊係從該些使用中資料區塊中依編號依序選取。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中該目標子對照表係從該些子對照表中依序選取。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中該目標子對照表係從該些子對照表中隨機選取。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中該目的資料區塊係從該些備用資料區塊中隨機選取。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中該目的資料區塊係從該些備用資料區塊中依序選取。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中該目的資料區塊係該些備用資料區塊中具有抹寫次數的極端值者。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中該資料儲存裝置包括儲存有效資料的該些使用中資料區塊以及未儲存有效資料的該些備用資料區塊。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中該資料儲存裝置包括一DRAM,該DRAM的大小不足以儲存該對照表。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中當該資料儲存裝置未收到命令時,自該前景模式進入該背景模式。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中當該等備用資料區塊的總數低於一臨界值時,自該前景模式進入該背景模式。
- 如申請專利範圍第1項所述之垃圾蒐集方法,其中當該資料儲存裝置的電力狀態(power state)改變時,自該前景模式進入該背景模式。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105136580A TWI619018B (zh) | 2016-11-10 | 2016-11-10 | 可用於資料儲存裝置之垃圾蒐集方法 |
CN201710066017.0A CN108073522B (zh) | 2016-11-10 | 2017-02-06 | 可用于数据储存装置的垃圾搜集方法 |
US15/783,953 US10657048B2 (en) | 2016-11-10 | 2017-10-13 | Garbage collection method for data storage device |
US16/833,680 US11354236B2 (en) | 2016-11-10 | 2020-03-30 | Garbage collection method for data storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105136580A TWI619018B (zh) | 2016-11-10 | 2016-11-10 | 可用於資料儲存裝置之垃圾蒐集方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI619018B true TWI619018B (zh) | 2018-03-21 |
TW201818255A TW201818255A (zh) | 2018-05-16 |
Family
ID=62063963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105136580A TWI619018B (zh) | 2016-11-10 | 2016-11-10 | 可用於資料儲存裝置之垃圾蒐集方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10657048B2 (zh) |
CN (1) | CN108073522B (zh) |
TW (1) | TWI619018B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016122227A (ja) | 2014-12-24 | 2016-07-07 | 株式会社東芝 | メモリシステムおよび情報処理システム |
US10795810B2 (en) * | 2018-09-10 | 2020-10-06 | Micron Technology, Inc. | Wear-leveling scheme for memory subsystems |
CN110895513A (zh) * | 2018-09-12 | 2020-03-20 | 华为技术有限公司 | 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法 |
TWI721365B (zh) * | 2018-09-17 | 2021-03-11 | 慧榮科技股份有限公司 | 高效能垃圾收集方法以及資料儲存裝置及其控制器 |
CN114528226A (zh) | 2018-09-17 | 2022-05-24 | 慧荣科技股份有限公司 | 高效能垃圾收集方法以及数据存储装置及其控制器 |
US10884954B2 (en) | 2018-09-17 | 2021-01-05 | Silicon Motion, Inc. | Method for performing adaptive locking range management, associated data storage device and controller thereof |
US11249901B2 (en) * | 2018-12-07 | 2022-02-15 | EMC IP Holding Company LLC | Ownership-based garbage collection of data |
KR20200073017A (ko) * | 2018-12-13 | 2020-06-23 | 에스케이하이닉스 주식회사 | 데이터 저장 장치와, 그것의 동작 방법 |
US11237924B2 (en) * | 2019-12-11 | 2022-02-01 | Commvault Systems, Inc. | Dynamic resizing and re-distribution of destination data storage resources for bare metal restore operations in a data storage management system |
TWI729674B (zh) * | 2020-01-13 | 2021-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其垃圾蒐集方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110029715A1 (en) * | 2009-07-29 | 2011-02-03 | International Business Machines Corporation | Write-erase endurance lifetime of memory storage devices |
TW201122812A (en) * | 2009-09-03 | 2011-07-01 | 248 Solidstate Inc | Page based management of flash storage |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6810037B1 (en) * | 1999-03-17 | 2004-10-26 | Broadcom Corporation | Apparatus and method for sorted table binary search acceleration |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US8806144B2 (en) * | 2009-05-12 | 2014-08-12 | Stec, Inc. | Flash storage device with read cache |
WO2011095516A1 (en) * | 2010-02-05 | 2011-08-11 | St-Ericsson Sa | Method and system for mass storage on flash memory |
US9026716B2 (en) * | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
KR101736384B1 (ko) * | 2010-09-29 | 2017-05-16 | 삼성전자주식회사 | 비휘발성 메모리 시스템 |
US8527544B1 (en) * | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
CN103176752A (zh) * | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
TWI514140B (zh) * | 2013-02-05 | 2015-12-21 | Via Tech Inc | 非揮發性記憶裝置及其操作方法 |
US9383924B1 (en) * | 2013-02-27 | 2016-07-05 | Netapp, Inc. | Storage space reclamation on volumes with thin provisioning capability |
US9208074B2 (en) * | 2013-08-30 | 2015-12-08 | Silicon Motion, Inc. | Updating address mapping in sub-intervals in a flash memory data storage device |
CN103530237B (zh) * | 2013-10-31 | 2016-02-17 | 厦门大学 | 一种固态盘阵列的垃圾回收方法 |
US9632880B2 (en) * | 2013-12-26 | 2017-04-25 | Silicon Motion, Inc. | Data storage device and flash memory control method |
KR102254392B1 (ko) * | 2014-05-12 | 2021-05-25 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 |
CN105260325A (zh) * | 2014-07-17 | 2016-01-20 | 广明光电股份有限公司 | 固态硬盘搜集垃圾区块的方法 |
CN105573661B (zh) * | 2014-10-15 | 2018-11-09 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
US9753649B2 (en) * | 2014-10-27 | 2017-09-05 | Sandisk Technologies Llc | Tracking intermix of writes and un-map commands across power cycles |
US9858008B2 (en) * | 2014-10-30 | 2018-01-02 | ScaleFlux | Method to reduce flash memory IOs with host maintained address mapping table |
TWI604307B (zh) * | 2014-10-31 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
KR102425470B1 (ko) * | 2015-04-06 | 2022-07-27 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN105389266B (zh) * | 2015-10-16 | 2019-03-01 | 北京联想核芯科技有限公司 | 一种数据管理方法及装置 |
CN105528301A (zh) * | 2015-12-07 | 2016-04-27 | 中国人民解放军信息工程大学 | 一种NAND Flash闪存垃圾回收方法 |
KR102580820B1 (ko) * | 2016-03-10 | 2023-09-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI653533B (zh) * | 2017-03-07 | 2019-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
-
2016
- 2016-11-10 TW TW105136580A patent/TWI619018B/zh active
-
2017
- 2017-02-06 CN CN201710066017.0A patent/CN108073522B/zh active Active
- 2017-10-13 US US15/783,953 patent/US10657048B2/en active Active
-
2020
- 2020-03-30 US US16/833,680 patent/US11354236B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110029715A1 (en) * | 2009-07-29 | 2011-02-03 | International Business Machines Corporation | Write-erase endurance lifetime of memory storage devices |
TW201122812A (en) * | 2009-09-03 | 2011-07-01 | 248 Solidstate Inc | Page based management of flash storage |
TW201510723A (zh) * | 2009-09-03 | 2015-03-16 | Pioneer Chip Technology Ltd | 以頁面為基礎管理快閃儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
CN108073522B (zh) | 2021-10-08 |
US11354236B2 (en) | 2022-06-07 |
CN108073522A (zh) | 2018-05-25 |
US10657048B2 (en) | 2020-05-19 |
US20180129602A1 (en) | 2018-05-10 |
US20200226062A1 (en) | 2020-07-16 |
TW201818255A (zh) | 2018-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI619018B (zh) | 可用於資料儲存裝置之垃圾蒐集方法 | |
TWI703438B (zh) | 映射表更新方法 | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
TWI398770B (zh) | 用於快閃記憶體的資料存取方法、儲存系統與控制器 | |
US8103820B2 (en) | Wear leveling method and controller using the same | |
KR102088403B1 (ko) | 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법 | |
JP5413572B2 (ja) | メモリストレージ装置及びその制御方法 | |
US20090307413A1 (en) | Data writing method for flash memory and storage system and controller using the same | |
TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
TWI521518B (zh) | 快閃記憶體設備中數據儲存之方法及裝置 | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
US11269783B2 (en) | Operating method for data storage device | |
CN106598493A (zh) | 一种固态硬盘地址映射表管理方法 | |
CN107402719B (zh) | 可用于数据储存装置的数据储存方法与数据回复方法、以及采用这些方法的数据储存装置 | |
CN105224474A (zh) | 固态硬盘闪存转换层的实现系统和闪存转换层的实现装置 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
CN112035065B (zh) | 一种数据写入方法、装置、设备及计算机可读存储介质 | |
US11392310B2 (en) | Memory system and controller | |
US11455246B2 (en) | Garbage collection method for data storage device | |
CN111177033A (zh) | 一种固态硬盘的使用方法 |