CN104793894A - 用来管理一固态硬盘的方法、装置、计算器程序产品 - Google Patents

用来管理一固态硬盘的方法、装置、计算器程序产品 Download PDF

Info

Publication number
CN104793894A
CN104793894A CN201410087965.9A CN201410087965A CN104793894A CN 104793894 A CN104793894 A CN 104793894A CN 201410087965 A CN201410087965 A CN 201410087965A CN 104793894 A CN104793894 A CN 104793894A
Authority
CN
China
Prior art keywords
solid state
hard disc
state hard
deletion
described solid
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN201410087965.9A
Other languages
English (en)
Inventor
林奕君
陈炫廷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Synology Inc
Original Assignee
Synology Inc
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 Synology Inc filed Critical Synology Inc
Publication of CN104793894A publication Critical patent/CN104793894A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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/0253Garbage collection, i.e. reclamation of unreferenced 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0614Improving the reliability of storage systems
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/72Details relating to flash memory management
    • G06F2212/7205Cleaning, 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)
  • Stored Programmes (AREA)
  • Processing Of Solid Wastes (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种用来适应性地管理一固态硬盘的方法与装置以及计算器程序产品,所述方法包括有下列步骤:监控是否存在针对建立于所述固态硬盘上的文件***的任何删除事件,以选择性地更新删除量累积值,其中所述删除量累积值代表所述文件***的至少一删除事件的总删除数据量;以及于所述删除量累积值达到预定删除量累积阀值之后,传送至少一修整指令至所述固态硬盘,以容许所述固态硬盘通过利用所述固态硬盘的垃圾收集机制回收可重新使用的储存空间。通过本发明的方法、装置、计算器程序产品,可在没有副作用的状况下提升所述固态硬盘的效能。

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」与「TRIM500K」),其中符号「K」代表千字节(Kilobyte)。然后,有一个大小为5K的档案被删除、并且对应的TRIM指令被下达(于图1中是分别标示为「删除5K」与「TRIM5K」)。另外,有一个大小为1K的档案被删除、并且对应的TRIM指令被下达(于图1中是分别标示为「删除1K」与「TRIM1K」)。然后,有一个大小为5K的档案被删除、并且对应的TRIM指令被下达(于图1中是分别标示为「删除5K」与「TRIM5K」)。此外,有一个大小为3K的档案被删除、并且对应的TRIM指令被下达(于图1中是分别标示为「删除3K」与「TRIM3K」)。然而,所述实时下达方案会产生一些问题诸如一些副作用。例如:所述实时下达方案会增加***负载及影响读写效能。由于传送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指令的时间点,以降低不必要的***负载。
附图说明
图1为相关技术中的实时下达(Online Issue)方案。
图2为相关技术中的脱机下达(Offline Issue)方案。
图3为依据本发明一第一实施例的一种用来适应性地管理一固态硬盘的装置的示意图。
图4为依据本发明一实施例的一种用来适应性地管理一固态硬盘的方法的流程图。
图5绘示图4所示的方法于一实施例中所涉及的一控制方案。
图6绘示图5所示的控制方案于一实施例中所涉及的一工作流程。
其中,附图标记说明如下:
10,310                       执行条件
100                          装置
110                          处理电路
110B                         程序代码
115                          接口电路
120                          固态硬盘
200                          方法
210,220,230                  步骤
400                          工作流程
410,420,430,440,450          步骤
具体实施方式
图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中的运作时,即可以省去扫描整个文件***的时间。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (21)

1.一种用来适应性地管理一固态硬盘的方法,所述方法是应用于一电子装置,所述固态硬盘是设置于所述电子装置中,所述方法的特征在于,包括有下列步骤:
监控是否存在针对建立于所述固态硬盘上的一文件***的任何删除事件,以选择性地更新一删除量累积值,其中所述删除量累积值代表所述文件***的至少一删除事件的总删除数据量;以及
于所述删除量累积值达到一预定删除量累积阀值之后,传送至少一修整指令至所述固态硬盘,以容许所述固态硬盘通过利用所述固态硬盘的垃圾收集机制回收可重新使用的储存空间。
2.如权利要求1所述的方法,其特征在于,监控是否存在针对建立于所述固态硬盘上的所述文件***的任何删除事件以选择性地更新所述删除量累积值的步骤还包括:
当一特定删除事件被侦测到时,依据所述特定删除事件的删除数据量更新所述删除量累积值。
3.如权利要求2所述的方法,其特征在于,监控是否存在针对建立于所述固态硬盘上的所述文件***的任何删除事件以选择性地更新所述删除量累积值的步骤还包括:
当所述特定删除事件被侦测到时,将所述特定删除事件的删除数据量累积至所述删除量累积值,以更新所述删除量累积值。
4.如权利要求1所述的方法,其特征在于,传送所述至少一修整指令至所述固态硬盘以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间的步骤还包括:
当所述删除量累积值达到所述预定删除量累积阀值时,判断所述至少一修整指令是否会妨碍所述电子装置的效能;以及
当判断所述至少一修整指令不会妨碍所述电子装置的效能时,立即传送所述至少一修整指令至所述固态硬盘,以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间。
5.如权利要求4所述的方法,其特征在于,传送所述至少一修整指令至所述固态硬盘以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间的步骤还包括:
当所述删除量累积值达到所述预定删除量累积阀值时,在所述电子装置的一处理器的使用率未超过一预定使用率阀值的状况下,立即传送所述至少一修整指令至所述固态硬盘,以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间。
6.如权利要求4所述的方法,其特征在于,传送所述至少一修整指令至所述固态硬盘以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间的步骤还包括:
当所述删除量累积值达到所述预定删除量累积阀值时,在所述固态硬盘的使用率未超过一预定使用率阀值的状况下,立即传送所述至少一修整指令至所述固态硬盘,以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间。
7.如权利要求4所述的方法,其特征在于,传送所述至少一修整指令至所述固态硬盘以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间的步骤还包括:
当判断所述至少一修整指令会妨碍所述电子装置的效能时,延迟传送所述至少一修整指令至所述固态硬盘,直到所述至少一修整指令不会妨碍所述电子装置的效能。
8.如权利要求1所述的方法,其特征在于,传送所述至少一修整指令至所述固态硬盘以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间的步骤还包括:
当所述删除量累积值达到所述预定删除量累积阀值时,立即传送所述至少一修整指令至所述固态硬盘,以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
于传送所述至少一修整指令至所述固态硬盘之后,重设所述删除量累积值,以供监控所述文件***的后续的删除事件之用。
10.如权利要求1所述的方法,其特征在于,所述方法还包括:
在更新所述删除量累积值时,记录被删除的档案的位置,以供传送所述至少一修整指令之用。
11.一种计算器程序产品,其特征在于,所述计算器程序产品包括程序代码以指示至少一处理器进行如权利要求1所述的方法。
12.一种用来适应性地管理一固态硬盘的装置,所述装置包括一电子装置的至少一部分,所述固态硬盘是设置于所述电子装置中,所述固态硬盘是用来提供一数据储存服务予所述电子装置,所述装置的特征在于包括有:
一接口电路,用来耦接所述固态硬盘;以及
一处理电路,通过所述接口电路耦接至所述固态硬盘,用来控制所述电子装置的运作以及适应性地管理所述固态硬盘,其中所述处理电路监控是否存在针对建立于所述固态硬盘上的一文件***的任何删除事件,以选择性地更新一删除量累积值,其中所述删除量累积值代表所述文件***的至少一删除事件的总删除数据量;
其中于所述删除量累积值达到一预定删除量累积阀值之后,所述处理电路传送至少一修整指令至所述固态硬盘,以容许所述固态硬盘通过利用所述固态硬盘的垃圾收集机制回收可重新使用的储存空间。
13.如权利要求12所述的装置,其特征在于,当一特定删除事件被侦测到时,所述处理电路依据所述特定删除事件的删除数据量更新所述删除量累积值。
14.如权利要求13所述的装置,其特征在于,当所述特定删除事件被侦测到时,所述处理电路将所述特定删除事件的删除数据量累积至所述删除量累积值,以更新所述删除量累积值。
15.如权利要求12所述的装置,其特征在于,当所述删除量累积值达到所述预定删除量累积阀值时,所述处理电路判断所述至少一修整指令是否会妨碍所述电子装置的效能;以及当判断所述至少一修整指令不会妨碍所述电子装置的效能时,所述处理电路立即传送所述至少一修整指令至所述固态硬盘,以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间。
16.如权利要求15所述的装置,其特征在于,当所述删除量累积值达到所述预定删除量累积阀值时,在所述电子装置的一处理器的使用率未超过一预定使用率阀值的状况下,所述处理电路立即传送所述至少一修整指令至所述固态硬盘,以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间。
17.如权利要求15所述的装置,其特征在于,当所述删除量累积值达到所述预定删除量累积阀值时,在所述固态硬盘的使用率未超过一预定使用率阀值的状况下,所述处理电路立即传送所述至少一修整指令至所述固态硬盘,以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间。
18.如权利要求15所述的装置,其特征在于,当判断所述至少一修整指令会妨碍所述电子装置的效能时,所述处理电路延迟传送所述至少一修整指令至所述固态硬盘,直到所述至少一修整指令不会妨碍所述电子装置的效能。
19.如权利要求12所述的装置,其特征在于,当所述删除量累积值达到所述预定删除量累积阀值时,所述处理电路立即传送所述至少一修整指令至所述固态硬盘,以容许所述固态硬盘通过利用所述固态硬盘的所述垃圾收集机制回收可重新使用的储存空间。
20.如权利要求12所述的装置,其特征在于,于传送所述至少一修整指令至所述固态硬盘之后,所述处理电路重设所述删除量累积值,以供监控所述文件***的后续的删除事件之用。
21.如权利要求12所述的装置,其特征在于,在更新所述删除量累积值时,所述处理电路记录被删除的档案的位置,以供传送所述至少一修整指令之用。
CN201410087965.9A 2014-01-22 2014-03-11 用来管理一固态硬盘的方法、装置、计算器程序产品 Pending CN104793894A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW103102332 2014-01-22
TW103102332A TWI599881B (zh) 2014-01-22 2014-01-22 用來適應性地管理一固態硬碟之方法、裝置、與計算機程式產品

Publications (1)

Publication Number Publication Date
CN104793894A true CN104793894A (zh) 2015-07-22

Family

ID=51951599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410087965.9A Pending CN104793894A (zh) 2014-01-22 2014-03-11 用来管理一固态硬盘的方法、装置、计算器程序产品

Country Status (4)

Country Link
US (1) US9715447B2 (zh)
EP (1) EP2899625A1 (zh)
CN (1) CN104793894A (zh)
TW (1) TWI599881B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843742A (zh) * 2015-12-03 2017-06-13 广明光电股份有限公司 固态硬盘及其执行删除命令的方法
CN109086223A (zh) * 2018-08-21 2018-12-25 郑州云海信息技术有限公司 一种控制垃圾回收的方法和装置
CN110442300A (zh) * 2018-05-03 2019-11-12 群联电子股份有限公司 整理指令记录方法、存储器控制电路单元与存储装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
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
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 群聯電子股份有限公司 整理指令記錄方法、記憶體控制電路單元與記憶體儲存裝置
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

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1673978A (zh) * 2004-03-28 2005-09-28 联发科技股份有限公司 资料区块的资料管理方法及其相关资料存取***
US20120144097A1 (en) * 2010-12-07 2012-06-07 Kabushiki Kaisha Toshiba Memory system and data deleting method
CN102511044A (zh) * 2011-09-06 2012-06-20 华为技术有限公司 一种数据删除方法及装置
TW201335840A (zh) * 2012-02-29 2013-09-01 Innostor Technology Corp 檔案系統對快閃記憶體之檔案管理方法
US20130232290A1 (en) * 2012-03-01 2013-09-05 Mark Ish Reducing write amplification in a flash memory
CN103412727A (zh) * 2013-07-17 2013-11-27 记忆科技(深圳)有限公司 优化固态硬盘的删减命令的方法及其固态硬盘
KR101335177B1 (ko) * 2011-09-26 2013-11-29 서울시립대학교 산학협력단 비휘발성 메모리 저장장치에서 워크로드와 데이터 재사용 시간을 고려한 선택적 트림 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100504812C (zh) 2003-11-21 2009-06-24 群联电子股份有限公司 随机存取闪存的控制方法
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1673978A (zh) * 2004-03-28 2005-09-28 联发科技股份有限公司 资料区块的资料管理方法及其相关资料存取***
US20120144097A1 (en) * 2010-12-07 2012-06-07 Kabushiki Kaisha Toshiba Memory system and data deleting method
CN102511044A (zh) * 2011-09-06 2012-06-20 华为技术有限公司 一种数据删除方法及装置
KR101335177B1 (ko) * 2011-09-26 2013-11-29 서울시립대학교 산학협력단 비휘발성 메모리 저장장치에서 워크로드와 데이터 재사용 시간을 고려한 선택적 트림 방법
TW201335840A (zh) * 2012-02-29 2013-09-01 Innostor Technology Corp 檔案系統對快閃記憶體之檔案管理方法
US20130232290A1 (en) * 2012-03-01 2013-09-05 Mark Ish Reducing write amplification in a flash memory
CN103412727A (zh) * 2013-07-17 2013-11-27 记忆科技(深圳)有限公司 优化固态硬盘的删减命令的方法及其固态硬盘

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843742A (zh) * 2015-12-03 2017-06-13 广明光电股份有限公司 固态硬盘及其执行删除命令的方法
CN110442300A (zh) * 2018-05-03 2019-11-12 群联电子股份有限公司 整理指令记录方法、存储器控制电路单元与存储装置
CN110442300B (zh) * 2018-05-03 2022-12-13 群联电子股份有限公司 整理指令记录方法、存储器控制电路单元与存储装置
CN109086223A (zh) * 2018-08-21 2018-12-25 郑州云海信息技术有限公司 一种控制垃圾回收的方法和装置
CN109086223B (zh) * 2018-08-21 2021-10-29 郑州云海信息技术有限公司 一种控制垃圾回收的方法和装置

Also Published As

Publication number Publication date
TWI599881B (zh) 2017-09-21
US9715447B2 (en) 2017-07-25
US20150205717A1 (en) 2015-07-23
EP2899625A1 (en) 2015-07-29
TW201530311A (zh) 2015-08-01

Similar Documents

Publication Publication Date Title
CN104793894A (zh) 用来管理一固态硬盘的方法、装置、计算器程序产品
CN108632330B (zh) 云端资源的管理***及其管理方法
EP3388946B1 (en) Memory collection method and device
CN101641681B (zh) 自管理处理设备
CN101616018B (zh) 网管软件升级的方法及装置
CN100388178C (zh) 管理层次存储***中的数据的方法和***
US7930507B2 (en) Method of providing to a processor an estimated completion time of a storage operation
US20080104350A1 (en) relocation system and a relocation method
CN109992523B (zh) 内存处理方法和装置、电子设备、计算机可读存储介质
CN110222020B (zh) 日志文件管理方法、装置、计算机设备及存储介质
US10560513B2 (en) Small disk support for large cloud-based storage systems
KR20120102664A (ko) 미래 사용 추정에 기반한 저장 메모리 할당
US20140032833A1 (en) Dynamic Disk Space Management In A File System
CN107577471B (zh) 一种应用控制方法及移动终端
WO2019178890A1 (zh) 文件处理方法及服务器
EP3267323A1 (en) Thin client system, connection management device, virtual machine operating device, method, and storage medium
CN110209654A (zh) 一种文本文件数据入库方法、***及电子设备和存储介质
CN105867962A (zh) ***升级的方法和装置
CN103763336B (zh) 一种面向复杂网络架构的软件更新方法
CN101510156B (zh) 一种信息***资源回收方法及装置
US9792080B2 (en) Information mediation system, information mediation method, information accumulating system, and information processing method
CN116389268A (zh) 云手机回收的处理方法、装置和计算机设备、存储介质
CN114104550B (zh) 移动机器人楼宇垃圾回收方法及相关设备
CN107577433B (zh) 一种存储介质和文件数据的迁移方法、装置及设备
CN100474259C (zh) 自动存档数据的方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150722

RJ01 Rejection of invention patent application after publication