TWI599881B - 用來適應性地管理一固態硬碟之方法、裝置、與計算機程式產品 - Google Patents
用來適應性地管理一固態硬碟之方法、裝置、與計算機程式產品 Download PDFInfo
- Publication number
- TWI599881B TWI599881B TW103102332A TW103102332A TWI599881B TW I599881 B TWI599881 B TW I599881B TW 103102332 A TW103102332 A TW 103102332A TW 103102332 A TW103102332 A TW 103102332A TW I599881 B TWI599881 B TW I599881B
- Authority
- TW
- Taiwan
- Prior art keywords
- solid state
- hard disk
- state hard
- amount
- deletion
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of 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/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or 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/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
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Of Solid Wastes (AREA)
- Stored Programmes (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
本發明係有關於使用固態硬碟(Solid State Drive,SSD)所建立之檔案系統之智慧型修整(TRIM)控制機制,尤指一種用來適應性地管理一固態硬碟之方法與裝置以及計算機程式產品。
依據相關技術,傳統的固態硬碟在使用一段時間後,存取(Access)效率會因為固態硬碟本身的基本特性而大幅下降,其中通常需要靠固態硬碟內建的垃圾收集(Garbage Collection;或稱為「垃圾回收」)機制來回收重新使用的儲存空間,以期恢復應有的效能。不過,在刪除檔案時,只有位於上層諸如檔案系統層的元資料(Metadata)會被改動。在此狀況下,由於位於下層的固態硬碟並未接獲通知,故實際上,在固態硬碟當中對應於刪除資料之儲存空間並不會被回收,這會導致固態硬碟之效能降低。
相關技術中之修整指令(TRIM Command,以下簡稱為「TRIM指令」)可以處理這個問題。TRIM指令是一個標準的硬碟指令。藉由利用TRIM指令,可以讓檔案系統在刪除檔案時通知固態硬碟哪些空間不再被使用。近年來隨著固態硬碟的蓬勃發展,目前的作業系統大多會支援TRIM指令。以下介紹關於下達TRIM指令之兩類型的傳統方案。
第1圖為相關技術中之一即時下達(Online Issue)方案。該即時下達方案是指:在檔案被刪除時立即下達TRIM指令至固態硬碟。例如:有一個大小為500K的檔案被刪除、並且對應的TRIM指令被下達(於第1圖
中係分別標示為「刪除500K」與「TRIM 500K」),其中符號「K」代表千位元組(Kilobyte)。然後,有一個大小為5K的檔案被刪除、並且對應的TRIM指令被下達(於第1圖中係分別標示為「刪除5K」與「TRIM 5K」)。另外,有一個大小為1K的檔案被刪除、並且對應的TRIM指令被下達(於第1圖中係分別標示為「刪除1K」與「TRIM 1K」)。然後,有一個大小為5K的檔案被刪除、並且對應的TRIM指令被下達(於第1圖中係分別標示為「刪除5K」與「TRIM 5K」)。此外,有一個大小為3K的檔案被刪除、並且對應的TRIM指令被下達(於第1圖中係分別標示為「刪除3K」與「TRIM 3K」)。然而,該即時下達方案會產生一些問題諸如一些副作用。例如:該即時下達方案會增加系統負載及影響讀寫效能。由於傳送TRIM指令會佔據固態硬碟的頻寬,故該即時下達方案會增加系統負載。另外,固態硬碟收到TRIM指令之後,可能會啟動垃圾收集機制,故該即時下達方案會使讀寫效能暫時地下降。
第2圖為相關技術中之一離線下達(Offline Issue)方案。該離線下達方案是指:事後傳送TRIM指令至固態硬碟,而非在檔案被刪除時立即下達TRIM指令至固態硬碟。尤其是,依據該離線下達方案,TRIM指令在某一預定時間一次下達。例如:有一個大小為500K的檔案被刪除(於第2圖中係標示為「刪除500K」)。然後,有一個大小為5K的檔案被刪除(於第2圖中係標示為「刪除5K」)。另外,有一個大小為1K的檔案被刪除(於第2圖中係標示為「刪除1K」)。然後,有一個大小為5K的檔案被刪除(於第2圖中係標示為「刪除5K」)。此外,有一個大小為3K的檔案被刪除(於第2圖中係標示為「刪除3K」)。傳統的執行條件10是:目前時間等於上述之某一預定時間,諸如一排程時間點、或一使用者自行訂定之時間點(於第2圖中係標示為「排程時間點或使用者自訂時間點」)。然而,該離線下達方案會產生一些問題諸如一些副作用。例如:作業系統「Ubuntu」中的軟體模組「fstrim」可在每次開機後第一次執行時掃描整個檔案系統,以找到所有無資
料的儲存空間,並且針對所有無資料的儲存空間下達TRIM指令。但使用軟體模組「fstrim」需要考慮執行的時機是否恰當。若是採用排程的方式執行,在刪除量還不大、甚至根本沒有刪除時的掃描,只是增加系統負擔。若是由使用者手動去執行,則會造成使用者的不便。又例如:作業系統「Android」可透過一些機制儘量在使用者充電時再下達TRIM指令。尤其是,其下達TRIM指令的頻率可以是大約一天一次。但這樣依然會遇到在刪除量不大的情況下徒增系統負擔的問題。
由以上可知,該些傳統方案無法在沒有副作用的狀況下提昇固態硬碟之效能。如此,需要一種新穎的方法以提昇固態硬碟之效能。
因此,本發明之一目的在於提供一種用來適應性地管理一固態硬碟之方法與裝置以及計算機程式產品,以解決上述問題。
本發明之另一目的在於提供一種用來適應性地管理一固態硬碟之方法與裝置以及計算機程式產品,以在沒有副作用的狀況下提昇該固態硬碟之效能。
本發明之另一目的在於提供一種用來適應性地管理一固態硬碟之方法與裝置以及計算機程式產品,以在沒有副作用的狀況下,提昇於內部設置有該固態硬碟之一電子裝置的整體效能。
本發明之至少一較佳實施例中提供一種用來適應性地管理一固態硬碟之方法,該方法係應用於一電子裝置,該固態硬碟係設置於該電子裝置中,該方法包含有下列步驟:監控是否存在針對建立於該固態硬碟上之一檔案系統之任何刪除事件,以選擇性地更新一刪除量累積值,其中該刪除量累積值代表該檔案系統之至少一刪除事件之總刪除資料量;以及於該刪除量累積值達到一預定刪除量累積閥值之後,傳送至少一修整指令(TRIM Command,可簡稱為「TRIM指令」)至該固態硬碟,以容許該固態硬碟藉由利用該固態硬碟之垃圾收集(Garbage Collection)機制回收(Recycle)可重
新使用的儲存空間。例如:上述之至少一刪除事件可包含該檔案系統之一個或多個刪除事件。
本發明於提供上述方法之同時,亦對應地提供一種用來適應性地管理一固態硬碟之裝置,其中該裝置包含一電子裝置之至少一部分,而該固態硬碟係設置於該電子裝置中,並且該固態硬碟係用來提供一資料儲存服務予該電子裝置。該裝置包含有:一介面電路,其中該介面電路係用來耦接該固態硬碟;以及一處理電路,其中該處理電路係透過該介面電路耦接至該固態硬碟。尤其是,該處理電路係用來控制該電子裝置之運作以及適應性地管理該固態硬碟。另外,該處理電路監控是否存在針對建立於該固態硬碟上之一檔案系統之任何刪除事件,以選擇性地更新一刪除量累積值,其中該刪除量累積值代表該檔案系統之至少一刪除事件之總刪除資料量。此外,於該刪除量累積值達到一預定刪除量累積閥值之後,該處理電路傳送至少一修整指令至該固態硬碟,以容許該固態硬碟藉由利用該固態硬碟之垃圾收集機制回收可重新使用的儲存空間。例如:上述之至少一刪除事件可包含該檔案系統之一個或多個刪除事件。
本發明於提供上述方法之同時,亦對應地提供一種計算機程式產品,其中該計算機程式產品包含程式碼以指示至少一處理器進行上述方法。
本發明的好處之一是,相較於相關技術,本發明之方法、裝置、與計算機程式產品可在沒有副作用的狀況下提昇該固態硬碟之效能。另外,本發明之方法、裝置、與計算機程式產品可在沒有副作用的狀況下提昇該電子裝置的整體效能。此外,相較於相關技術,本發明之方法、裝置、與計算機程式產品可減少因頻繁傳送TRIM指令帶來的效能下降,並且可決定合理的下達TRIM指令之時間點,以降低不必要的系統負載。
10,310‧‧‧執行條件
100‧‧‧用來適應性地管理一固態硬碟之裝置
110‧‧‧處理電路
110B‧‧‧程式碼
120‧‧‧固態硬碟
200‧‧‧用來適應性地管理一固態硬碟之方法
210,220,230‧‧‧步驟
400‧‧‧工作流程
410,420,430,440,450‧‧‧步驟
第1圖為相關技術中之一即時下達(Online Issue)方案。
第2圖為相關技術中之一離線下達(Offline Issue)方案。
第3圖為依據本發明一第一實施例之一種用來適應性地管理一固態硬碟之裝置的示意圖。
第4圖為依據本發明一實施例之一種用來適應性地管理一固態硬碟之方法的流程圖。
第5圖繪示第4圖所示之方法於一實施例中所涉及之一控制方案。
第6圖繪示第5圖所示之控制方案於一實施例中所涉及之一工作流程。
第3圖為依據本發明一第一實施例之一種用來適應性地管理一固態硬碟之裝置100的示意圖,其中裝置100可包含一電子裝置之至少一部分(例如一部分或全部),而該固態硬碟係設置於該電子裝置中,並且該固態硬碟係用來提供一資料儲存服務予該電子裝置。例如:裝置100可為該電子裝置中之電路系統。又例如:裝置100可為該電子裝置之整體。該電子裝置之例子可包含(但不限於):伺服器、個人電腦(Personal Computer)、個人數位助理(Personal Digital Assistant,PDA)、行動電話、平板電腦。這只是為了說明的目的而已,並非對本發明之限制。
如第3圖所示,裝置100可包含一處理電路110與一介面電路115,而處理電路110與介面電路115係彼此耦接,其中固態硬碟120可為上述之固態硬碟之一例。依據本實施例,介面電路115係用來耦接固態硬碟120。尤其是,處理電路110係透過介面電路115耦接至上述之固態硬碟諸如固態硬碟120。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,裝置100可包含上述之固態硬碟諸如固態硬碟120。另外,於本實施例中,處理電路110可包含至少一處理器以執行程式碼110B,並且執行程式碼110B之處理電路110係用來控制該電子裝置之運作以及適應性地管理上述之固態硬碟諸如固態硬碟120。尤其是,處理電路110包含一
智慧型修整(TRIM)控制模組(Intelligent TRIM-control Module,以下簡稱為「智慧型TRIM控制模組」;未顯示於第3圖),用來適應性地管理上述之固態硬碟(諸如固態硬碟120)。例如:該智慧型TRIM控制模組可為程式碼110B中之至少一程式模組,諸如至少一軟體模組,其中程式碼110B可代表執行於該電子裝置(諸如上述之伺服器、個人電腦、個人數位助理、行動電話、或平板電腦)的程式。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,程式碼110B可內嵌於處理電路110,並且該智慧型TRIM控制模組可為一硬體電路,諸如處理電路110之至少一部分(例如一部分或全部)。
依據本實施例,執行程式碼110B之處理電路110(尤其是該智慧型TRIM控制模組)可決定傳送修整指令(TRIM Command,以下簡稱為「TRIM指令」)的時機,以適應性地管理建立於上述固態硬碟(諸如固態硬碟120)的檔案系統。例如:當檔案系統刪除檔案時,執行程式碼110B之處理電路110(尤其是該智慧型TRIM控制模組)可累積刪除資料量以計算刪除檔案之大小的總和,並且,於刪除資料量達到一預定閥值之後才觸發TRIM指令之傳送。於是,執行程式碼110B之處理電路110透過TRIM指令通知固態硬碟120,以利固態硬碟120釋放其內對應的儲存空間,進而恢復固態硬碟120之效能。因此,本發明之裝置100可避免相關技術的問題,諸如因頻繁傳送TRIM指令帶來的效能下降、以及不必要的系統負載。
第4圖為依據本發明一實施例之一種用來適應性地管理一固態硬碟之方法200的流程圖。該方法可應用於第3圖所示之裝置100,尤其是上述之處理電路110,諸如透過上述至少一處理器執行上述程式碼110B之處理電路110,其中固態硬碟120可為上述之固態硬碟之一例。例如:藉由利用一計算機程式產品,諸如儲存有程式碼110B(尤其是其安裝版本)之光碟片,該電子裝置之管理人員可將程式碼110B安裝於裝置100,其中該計算機程式產品包含程式碼110B(尤其是其安裝版本)以指示上述至少一處理器進行第
4圖所示之方法200。於是,處理電路110(尤其是該智慧型TRIM控制模組)可控制該電子裝置之運作,以進行第4圖所示之方法200。這只是為了說明的目的而已,並非對本發明之限制。該方法說明如下:於步驟210中,處理電路110監控是否存在針對建立於固態硬碟120上之一檔案系統之任何刪除事件,以選擇性地更新一刪除量累積值,其中該刪除量累積值代表該檔案系統之至少一刪除事件之總刪除資料量。例如:當一特定刪除事件被偵測到時,處理電路110依據該特定刪除事件之刪除資料量更新該刪除量累積值。尤其是,當該特定刪除事件被偵測到時,處理電路110將該特定刪除事件之刪除資料量累積至該刪除量累積值,以更新該刪除量累積值。於是,在步驟210中之監控運作期間,上述之至少一刪除事件可包含該檔案系統之一個或多個刪除事件,並且該刪除量累積值等同於上述一個或多個刪除事件中之刪除檔案之大小的總和。
於步驟220中,於該刪除量累積值達到一預定刪除量累積閥值(諸如上述之預定閥值)之後,處理電路110傳送至少一TRIM指令(例如:一個或多個TRIM指令)至固態硬碟120,以容許固態硬碟120藉由利用固態硬碟120之垃圾收集(Garbage Collection)機制回收(Recycle)可重新使用的儲存空間。例如:當該刪除量累積值達到該預定刪除量累積閥值時,處理電路110可判斷上述之至少一TRIM指令是否會妨礙該電子裝置之效能。尤其是,當判斷上述之至少一TRIM指令不會妨礙該電子裝置之效能時,處理電路110立即傳送上述之至少一TRIM指令至固態硬碟120,以容許固態硬碟120藉由利用固態硬碟120之該垃圾收集機制回收可重新使用的儲存空間;否則(亦即,當判斷上述之至少一TRIM指令會妨礙該電子裝置之效能時),處理電路110延遲傳送上述之至少一TRIM指令至固態硬碟120,直到上述之至少一TRIM指令不會妨礙該電子裝置之效能。
實作上,處理電路110可基於該電子裝置(尤其是其內的元件,諸如上述之至少一處理器)是否忙碌,判斷上述之至少一TRIM指令是否會
妨礙該電子裝置之效能。例如:當該刪除量累積值達到該預定刪除量累積閥值時,在該電子裝置之一處理器的使用率未超過一預定使用率閥值(例如:80%;又例如:70%;又例如:落入區間(0%,100%)的範圍之某一固定數值)的狀況下,處理電路110立即傳送上述之至少一TRIM指令至固態硬碟120,以容許固態硬碟120藉由利用固態硬碟120之該垃圾收集機制回收可重新使用的儲存空間,其中這個處理器可為上述之至少一處理器之一例。這只是為了說明的目的而已,並非對本發明之限制。例如:當該刪除量累積值達到該預定刪除量累積閥值時,在固態硬碟120的使用率未超過另一預定使用率閥值(例如:85%;又例如:75%;又例如:落入區間(0%,100%)的範圍之某一固定數值)的狀況下,處理電路110立即傳送上述之至少一TRIM指令至固態硬碟120,以容許固態硬碟120藉由利用固態硬碟120之該垃圾收集機制回收可重新使用的儲存空間。又例如:當該刪除量累積值達到該預定刪除量累積閥值時,在該電子裝置之該處理器的該使用率未超過該預定使用率閥值、並且固態硬碟120的使用率未超過該另一預定使用率閥值的狀況下,處理電路110立即傳送上述之至少一TRIM指令至固態硬碟120,以容許固態硬碟120藉由利用固態硬碟120之該垃圾收集機制回收可重新使用的儲存空間。
請注意,上述之該預定使用率閥值係用來判斷該電子裝置之該處理器是否處於忙碌狀態,而上述之該另一預定使用率閥值係用來判斷固態硬碟120是否處於忙碌狀態。在典型狀況下,該預定使用率閥值與該另一預定使用率閥值可以彼此不相關。例如:該另一預定使用率閥值可以不等於該預定使用率閥值。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,該另一預定使用率閥值可以等於該預定使用率閥值。依據本實施例之某些變化例,該預定使用率閥值與該另一預定使用率閥值可以彼此相關。
於步驟230中,於傳送上述之至少一TRIM指令至固態硬碟120
之後,處理電路110重設(Reset)該刪除量累積值,以供監控該檔案系統之後續的刪除事件之用。例如:處理電路110可將該刪除量累積值重設為零。實作上,處理電路110可將用來暫時地儲存該刪除量累積值之一參數重設為零。
依據本實施例,處理電路110可基於該電子裝置(尤其是其內的元件,諸如上述之至少一處理器)是否忙碌,判斷上述之至少一TRIM指令是否會妨礙該電子裝置之效能,並且依據這個判斷結果來決定是否延遲傳送上述之至少一TRIM指令至固態硬碟120。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,當該刪除量累積值達到該預定刪除量累積閥值時,處理電路110立即傳送上述之至少一TRIM指令至固態硬碟120,以容許固態硬碟120藉由利用固態硬碟120之該垃圾收集機制回收可重新使用的儲存空間。也就是說,這些變化例當中,在傳送上述之至少一TRIM指令至固態硬碟120之前,處理電路110不需要預先判斷上述之至少一TRIM指令是否會妨礙該電子裝置之效能。
第5圖繪示第4圖所示之方法200於一實施例中所涉及之一控制方案。例如:有一個大小為500K的檔案被刪除(於第5圖中係標示為「刪除500K」)。然後,有一個大小為5K的檔案被刪除(於第5圖中係標示為「刪除5K」)。另外,有一個大小為1K的檔案被刪除(於第5圖中係標示為「刪除1K」)。然後,有一個大小為5K的檔案被刪除(於第5圖中係標示為「刪除5K」)。此外,有一個大小為3K的檔案被刪除(於第5圖中係標示為「刪除3K」)。依據本實施例,該控制方案的執行條件310是:該刪除量累積值達到該預定刪除量累積閥值(於第5圖中係標示為「刪除量達到某特定值」),其中該刪除量累積值於本實施例中可簡稱為「刪除量」,而第5圖所示之「某特定值」可作為該預定刪除量累積閥值之一例。於是,當該控制方案的執行條件310已滿足時,執行程式碼110B之處理電路110(尤其是該智慧型TRIM控制模組)啟動第4圖所示實施例(或其變化例)之TRIM離線下達機制。
實作上,執行程式碼110B之處理電路110(尤其是該智慧型TRIM控制模組)可利用固態硬碟120來儲存該刪除量累積值之最新數值,以累加上述一個或多個刪除事件中之刪除檔案之大小的總和,諸如目前已刪除檔案之大小的總和。尤其是,該刪除量累積值可被儲存於固態硬碟120中之一區塊。這只是為了說明的目的而已,並非對本發明之限制。
另外,執行程式碼110B之處理電路110(尤其是該智慧型TRIM控制模組)可預先將該預定刪除量累積閥值設定為固態硬碟120的超額配置(Over-provisioning)區塊的大小。實作上,上述之超額配置區塊的空間為固態硬碟120中之實際容量扣掉可供使用者使用之容量,該超額配置區塊的空間可預留給固態硬碟120,以供固態硬碟120進行其某些背景作業(或背景運作)時使用,其中上述之背景作業可包含覆寫、垃圾回收...等運作。例如:當該超額配置區塊之空間被用罄,以致缺乏足夠的儲存空間供上述之背景作業之使用,則固態硬碟120的運作速度在典型狀況下會變慢。因此,若執行程式碼110B之處理電路110(尤其是該智慧型TRIM控制模組)預先將該預定刪除量累積閥值設定為該超額配置區塊的大小,則處理電路110在下達TRIM指令至固態硬碟120之後,就可能使固態硬碟120釋出和該超額配置區塊一樣大的空間,使得固態硬碟120的效能回升。這只是為了說明的目的而已,並非對本發明之限制。例如:基於預設(Default)設定或使用者設定,執行程式碼110B之處理電路110(尤其是該智慧型TRIM控制模組)可預先將該預定刪除量累積閥值設定為一固定數值(例如:固態硬碟120的儲存容量之10%;又例如:固態硬碟120的儲存容量之20%;又例如:固態硬碟120的儲存容量乘以落入區間(0%,100%)的範圍之某一比率)。
第6圖繪示第5圖所示之控制方案於一實施例中所涉及之一工作流程400。
於步驟410中,處理電路110偵測到刪除事件。例如:這個刪除事件可為上述之特定刪除事件。
於步驟420中,處理電路110累加刪除檔案大小。例如:在步驟410中所述之這個刪除事件係為上述之特定刪除事件的狀況下,處理電路110依據該特定刪除事件之刪除資料量更新該刪除量累積值。尤其是,當該特定刪除事件被偵測到時,處理電路110將該特定刪除事件之刪除資料量累積至該刪除量累積值,以更新該刪除量累積值。
於步驟430中,處理電路110檢查對應的累加值(亦即,從步驟420中之累加運作所得之最新的累加值)是否大於上述之預定閥值(於第6圖中係標示為「閥值」),其中該累加值可為上述之該刪除量累積值之一例,而該預定閥值可為上述之該預定刪除量累積閥值之一例。當偵測到該累加值大於該預定閥值時,進入步驟440;否則,重新進入步驟410。
於步驟440中,處理電路110開始離線下達TRIM指令。
於步驟450中,處理電路110清空該累加值,其中該累加值可為上述之該刪除量累積值之一例。實作上,處理電路110可將用來暫時地儲存該刪除量累積值(諸如該累加值)之該參數重設為零。於執行步驟450之後,重新進入步驟410。
實作上,在進行步驟440中之運作(例如:離線下達TRIM指令至固態硬碟120之運作)時,處理電路110可先重新掃描過該檔案系統,以判斷該檔案系統當中有哪些邏輯區塊位址(Logical Block Address,LBA)是沒有檔案的,再針對這些沒有檔案的邏輯區塊位址全都下達TRIM指令至固態硬碟120。這只是為了說明的目的而已,並非對本發明之限制。依據本發明之某些實施例,諸如第4圖所示實施例之某些變化例,在更新步驟210中所述之該刪除量累積值時,處理電路110可記錄被刪除的檔案之邏輯區塊位址,以供傳送上述之至少一TRIM指令之用。尤其是,依據第5圖與第6圖所示之該些實施例之某些變化例,處理電路110可在累加刪除量時,同時記錄被刪除的檔案之邏輯區塊位址。在後續下達TRIM指令時,處理電路110可以直接檢查有記錄的邏輯區塊位址。例如:當偵測到某一個邏輯區塊位址
現在還是無資料時,處理電路110可針對此邏輯區塊位址下達TRIM指令至固態硬碟120。如此一來,在進行步驟440中之運作時,即可以省去掃描整個檔案系統的時間。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
200‧‧‧用來適應性地管理一固態硬碟之方法
210,220,230‧‧‧步驟
Claims (21)
- 一種用來適應性地管理一固態硬碟之方法,該方法係應用於一電子裝置,該固態硬碟係設置於該電子裝置中,該方法包含有下列步驟:監控是否存在針對建立於該固態硬碟上之一檔案系統之任何刪除事件,以選擇性地更新一刪除量累積值,其中該刪除量累積值代表該檔案系統之至少一刪除事件之總刪除資料量;以及於該刪除量累積值達到一預定刪除量累積閥值之後,傳送至少一修整(TRIM)指令至該固態硬碟,以容許該固態硬碟藉由利用該固態硬碟之垃圾收集(Garbage Collection)機制回收(Recycle)可重新使用的儲存空間。
- 如申請專利範圍第1項所述之方法,其中監控是否存在針對建立於該固態硬碟上之該檔案系統之任何刪除事件以選擇性地更新該刪除量累積值之步驟另包含:當一特定刪除事件被偵測到時,依據該特定刪除事件之刪除資料量更新該刪除量累積值。
- 如申請專利範圍第2項所述之方法,其中監控是否存在針對建立於該固態硬碟上之該檔案系統之任何刪除事件以選擇性地更新該刪除量累積值之步驟另包含:當該特定刪除事件被偵測到時,將該特定刪除事件之刪除資料量累積至該刪除量累積值,以更新該刪除量累積值。
- 如申請專利範圍第1項所述之方法,其中傳送該至少一修整指令至該固態硬碟以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間之步驟另包含: 當該刪除量累積值達到該預定刪除量累積閥值時,判斷該至少一修整指令是否會妨礙該電子裝置之效能;以及當判斷該至少一修整指令不會妨礙該電子裝置之效能時,立即傳送該至少一修整指令至該固態硬碟,以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間。
- 如申請專利範圍第4項所述之方法,其中傳送該至少一修整指令至該固態硬碟以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間之步驟另包含:當該刪除量累積值達到該預定刪除量累積閥值時,在該電子裝置之一處理器的使用率未超過一預定使用率閥值的狀況下,立即傳送該至少一修整指令至該固態硬碟,以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間。
- 如申請專利範圍第4項所述之方法,其中傳送該至少一修整指令至該固態硬碟以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間之步驟另包含:當該刪除量累積值達到該預定刪除量累積閥值時,在該固態硬碟的使用率未超過一預定使用率閥值的狀況下,立即傳送該至少一修整指令至該固態硬碟,以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間。
- 如申請專利範圍第4項所述之方法,其中傳送該至少一修整指令至該固態硬碟以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間之步驟另包含:當判斷該至少一修整指令會妨礙該電子裝置之效能時,延遲傳送該至少 一修整指令至該固態硬碟,直到該至少一修整指令不會妨礙該電子裝置之效能。
- 如申請專利範圍第1項所述之方法,其中傳送該至少一修整指令至該固態硬碟以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間之步驟另包含:當該刪除量累積值達到該預定刪除量累積閥值時,立即傳送該至少一修整指令至該固態硬碟,以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間。
- 如申請專利範圍第1項所述之方法,其另包含:於傳送該至少一修整指令至該固態硬碟之後,重設(Reset)該刪除量累積值,以供監控該檔案系統之後續的刪除事件之用。
- 如申請專利範圍第1項所述之方法,其另包含:在更新該刪除量累積值時,記錄被刪除的檔案之位置,以供傳送該至少一修整指令之用。
- 一種計算機程式產品,其中該計算機程式產品包含程式碼以指示至少一處理器進行如申請專利範圍第1項所述之方法。
- 一種用來適應性地管理一固態硬碟之裝置,該裝置包含一電子裝置之至少一部分,該固態硬碟係設置於該電子裝置中,該固態硬碟係用來提供一資料儲存服務予該電子裝置,該裝置包含有:一介面電路,用來耦接該固態硬碟;以及一處理電路,透過該介面電路耦接至該固態硬碟,用來控制該電子裝置 之運作以及適應性地管理該固態硬碟,其中該處理電路監控是否存在針對建立於該固態硬碟上之一檔案系統之任何刪除事件,以選擇性地更新一刪除量累積值,其中該刪除量累積值代表該檔案系統之至少一刪除事件之總刪除資料量;其中於該刪除量累積值達到一預定刪除量累積閥值之後,該處理電路傳送至少一修整(TRIM)指令至該固態硬碟,以容許該固態硬碟藉由利用該固態硬碟之垃圾收集(Garbage Collection)機制回收(Recycle)可重新使用的儲存空間。
- 如申請專利範圍第12項所述之裝置,其中當一特定刪除事件被偵測到時,該處理電路依據該特定刪除事件之刪除資料量更新該刪除量累積值。
- 如申請專利範圍第13項所述之裝置,其中當該特定刪除事件被偵測到時,該處理電路將該特定刪除事件之刪除資料量累積至該刪除量累積值,以更新該刪除量累積值。
- 如申請專利範圍第12項所述之裝置,其中當該刪除量累積值達到該預定刪除量累積閥值時,該處理電路判斷該至少一修整指令是否會妨礙該電子裝置之效能;以及當判斷該至少一修整指令不會妨礙該電子裝置之效能時,該處理電路立即傳送該至少一修整指令至該固態硬碟,以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間。
- 如申請專利範圍第15項所述之裝置,其中當該刪除量累積值達到該預定刪除量累積閥值時,在該電子裝置之一處理器的使用率未超過一預定 使用率閥值的狀況下,該處理電路立即傳送該至少一修整指令至該固態硬碟,以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間。
- 如申請專利範圍第15項所述之裝置,其中當該刪除量累積值達到該預定刪除量累積閥值時,在該固態硬碟的使用率未超過一預定使用率閥值的狀況下,該處理電路立即傳送該至少一修整指令至該固態硬碟,以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間。
- 如申請專利範圍第15項所述之裝置,其中當判斷該至少一修整指令會妨礙該電子裝置之效能時,該處理電路延遲傳送該至少一修整指令至該固態硬碟,直到該至少一修整指令不會妨礙該電子裝置之效能。
- 如申請專利範圍第12項所述之裝置,其中當該刪除量累積值達到該預定刪除量累積閥值時,該處理電路立即傳送該至少一修整指令至該固態硬碟,以容許該固態硬碟藉由利用該固態硬碟之該垃圾收集機制回收可重新使用的儲存空間。
- 如申請專利範圍第12項所述之裝置,其中於傳送該至少一修整指令至該固態硬碟之後,該處理電路重設(Reset)該刪除量累積值,以供監控該檔案系統之後續的刪除事件之用。
- 如申請專利範圍第12項所述之裝置,其中在更新該刪除量累積值時,該處理電路記錄被刪除的檔案之位置,以供傳送該至少一修整指令之用。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103102332A TWI599881B (zh) | 2014-01-22 | 2014-01-22 | 用來適應性地管理一固態硬碟之方法、裝置、與計算機程式產品 |
CN201410087965.9A CN104793894A (zh) | 2014-01-22 | 2014-03-11 | 用来管理一固态硬盘的方法、装置、计算器程序产品 |
US14/340,575 US9715447B2 (en) | 2014-01-22 | 2014-07-25 | Method for adaptively managing a solid state drive, and associated apparatus and associated computer program product |
EP14192757.4A EP2899625A1 (en) | 2014-01-22 | 2014-11-12 | Method for adaptively managing a solid state drive, and associated apparatus and associated computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103102332A TWI599881B (zh) | 2014-01-22 | 2014-01-22 | 用來適應性地管理一固態硬碟之方法、裝置、與計算機程式產品 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201530311A TW201530311A (zh) | 2015-08-01 |
TWI599881B true TWI599881B (zh) | 2017-09-21 |
Family
ID=51951599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103102332A TWI599881B (zh) | 2014-01-22 | 2014-01-22 | 用來適應性地管理一固態硬碟之方法、裝置、與計算機程式產品 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9715447B2 (zh) |
EP (1) | EP2899625A1 (zh) |
CN (1) | CN104793894A (zh) |
TW (1) | TWI599881B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102282006B1 (ko) * | 2014-08-19 | 2021-07-28 | 삼성전자주식회사 | 컴퓨터 장치 및 저장 장치 |
US9880770B2 (en) * | 2015-09-02 | 2018-01-30 | SK Hynix Inc. | Supporting invalidation commands for non-volatile memory |
CN106843742A (zh) * | 2015-12-03 | 2017-06-13 | 广明光电股份有限公司 | 固态硬盘及其执行删除命令的方法 |
TWI622923B (zh) * | 2016-05-04 | 2018-05-01 | 群聯電子股份有限公司 | 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置 |
US10089235B1 (en) * | 2017-07-28 | 2018-10-02 | Citrix Systems, Inc. | Dynamic trim processing with disk caching |
CN107632942A (zh) * | 2017-08-29 | 2018-01-26 | 记忆科技(深圳)有限公司 | 一种固态硬盘实现lba级别trim命令的方法 |
KR102583592B1 (ko) * | 2018-03-27 | 2023-10-06 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
TWI660271B (zh) * | 2018-04-24 | 2019-05-21 | 群聯電子股份有限公司 | 整理指令記錄方法、記憶體控制電路單元與記憶體儲存裝置 |
CN110442300B (zh) * | 2018-05-03 | 2022-12-13 | 群联电子股份有限公司 | 整理指令记录方法、存储器控制电路单元与存储装置 |
CN109086223B (zh) * | 2018-08-21 | 2021-10-29 | 郑州云海信息技术有限公司 | 一种控制垃圾回收的方法和装置 |
US20220197553A1 (en) * | 2020-12-22 | 2022-06-23 | Red Hat, Inc. | Managing write removal for solid-state drives |
JP2023001494A (ja) | 2021-06-21 | 2023-01-06 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US20240069781A1 (en) * | 2022-08-31 | 2024-02-29 | Pure Storage, Inc. | Optimizing Data Deletion Settings in a Storage System |
US20240078009A1 (en) * | 2022-09-01 | 2024-03-07 | Western Digital Technologies, Inc. | System and Method for Retrimming Removable Storage Devices |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100504812C (zh) | 2003-11-21 | 2009-06-24 | 群联电子股份有限公司 | 随机存取闪存的控制方法 |
TWI254947B (en) * | 2004-03-28 | 2006-05-11 | Mediatek Inc | Data managing method and data access system for storing all management data in a management bank of a non-volatile memory |
TW201142603A (en) | 2010-05-25 | 2011-12-01 | Coresolid Storage Corp | Method to improve read/write speed of nonvolatile memory |
US20120059976A1 (en) | 2010-09-07 | 2012-03-08 | Daniel L. Rosenband | Storage array controller for solid-state storage devices |
US11232022B2 (en) | 2010-10-29 | 2022-01-25 | Samsung Electronics Co., Ltd. | Memory system, data storage device, user device and data management method thereof having a data management information matching determination |
JP2012123499A (ja) * | 2010-12-07 | 2012-06-28 | Toshiba Corp | メモリシステム |
EP2631916B1 (en) * | 2011-09-06 | 2015-08-26 | Huawei Technologies Co., Ltd. | Data deletion method and apparatus |
KR101335177B1 (ko) * | 2011-09-26 | 2013-11-29 | 서울시립대학교 산학협력단 | 비휘발성 메모리 저장장치에서 워크로드와 데이터 재사용 시간을 고려한 선택적 트림 방법 |
TWI476680B (zh) * | 2012-02-29 | 2015-03-11 | Innostor Technology Corp | Archives System for File Management of Flash Memory |
US8892811B2 (en) * | 2012-03-01 | 2014-11-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Reducing write amplification in a flash memory |
CN103412727B (zh) * | 2013-07-17 | 2016-12-28 | 记忆科技(深圳)有限公司 | 优化固态硬盘的删减命令的方法及其固态硬盘 |
-
2014
- 2014-01-22 TW TW103102332A patent/TWI599881B/zh not_active IP Right Cessation
- 2014-03-11 CN CN201410087965.9A patent/CN104793894A/zh active Pending
- 2014-07-25 US US14/340,575 patent/US9715447B2/en not_active Expired - Fee Related
- 2014-11-12 EP EP14192757.4A patent/EP2899625A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP2899625A1 (en) | 2015-07-29 |
TW201530311A (zh) | 2015-08-01 |
CN104793894A (zh) | 2015-07-22 |
US20150205717A1 (en) | 2015-07-23 |
US9715447B2 (en) | 2017-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI599881B (zh) | 用來適應性地管理一固態硬碟之方法、裝置、與計算機程式產品 | |
US11662996B2 (en) | System and method for downgrading applications | |
US9104629B2 (en) | Autonomic reclamation processing on sequential storage media | |
JP2014522537A (ja) | 使用によるフラッシュ・ベースの記憶装置へのデータ配置の管理 | |
US9335931B2 (en) | System and method for making snapshots of storage devices | |
US9176869B2 (en) | Memory use for garbage collected computer environments | |
US20060230136A1 (en) | Intelligent auto-archiving | |
JP2013509658A (ja) | 将来の使用推量に基づく記憶メモリの割り当て | |
JP6011349B2 (ja) | ストレージ装置、およびデータ圧縮方法 | |
JP5592493B2 (ja) | ストレージネットワークシステム及びその制御方法 | |
EP3353627B1 (en) | Adaptive storage reclamation | |
JP4561168B2 (ja) | データ処理システムおよび方法並びにその処理プログラム | |
JP2010535379A (ja) | フラッシュメモリに最適化された入出力制御方法および装置 | |
US9778927B2 (en) | Storage control device to control storage devices of a first type and a second type | |
US10198194B2 (en) | Placing data within a storage device of a flash array | |
US9336250B1 (en) | Systems and methods for efficiently backing up data | |
US20040107357A1 (en) | Apparatus and method for protecting data on computer hard disk and computer readable recording medium having computer readable programs stored therein | |
US11176089B2 (en) | Systems and methods for implementing dynamic file systems | |
CN100474259C (zh) | 自动存档数据的方法及系统 | |
JP2015014963A (ja) | ストレージ制御装置、制御プログラム及び制御方法 | |
WO2017016139A1 (zh) | 一种系统还原方法与装置 | |
CN112597112A (zh) | 数据处理方法及装置、电子设备和存储介质 | |
JP2013025655A (ja) | ログファイル管理モジュールおよびログファイル管理方法 | |
WO2020113549A1 (en) | External staging storage cluster mechanism to optimize archival data storage system on shingled magnetic recording hard disk drives | |
US9817599B2 (en) | Storing indicators of unreferenced memory addresses in volatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |