CN110347612A - 一种适用于固态盘的动态调整垃圾回收方法 - Google Patents
一种适用于固态盘的动态调整垃圾回收方法 Download PDFInfo
- Publication number
- CN110347612A CN110347612A CN201910480344.XA CN201910480344A CN110347612A CN 110347612 A CN110347612 A CN 110347612A CN 201910480344 A CN201910480344 A CN 201910480344A CN 110347612 A CN110347612 A CN 110347612A
- Authority
- CN
- China
- Prior art keywords
- hard disk
- solid state
- state hard
- block
- 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
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
- 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)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种适用于固态盘的动态调整垃圾回收方法,包括步骤:1)获取基础数据,包括块的无效页面数,块的擦除次数,固态硬盘容量、固态硬盘空闲空间的大小;2)根据固态硬盘容量设定两级阈值;3)判断固态硬盘空闲空间的大小位于哪个范围,判断是否立刻进行垃圾回收操作;4)利用数据进行计算,预测选择哪一个块进行回收最好;5)进行垃圾回收操作。本发明为固态硬盘的垃圾回收过程提供了一种新的方法,将动态调整垃圾回收方法作为垃圾回收过程优化的一种有效手段,能够有效提高垃圾回收的效率。
Description
技术领域
本发明涉及数据存储的技术领域,尤其是指一种适用于固态盘的动态调整垃圾回收方法。
背景技术
传统数据存储介质有磁带、光盘等,使用最多的是机械硬盘。随着数据呈爆炸式增长,对数据存储介质在速度上、容量上有了更高的要求,固态硬盘开始被越来越多的使用和研究。固态硬盘使用电子芯片存储数据,没有机械硬盘的机械式部件,因此在速度、时延、功耗、抗震等方面,与机械硬盘相比都具有优势,无论是个人存储还是企业存储,都在逐渐使用固态硬盘取代机械硬盘。以NAND Flash(闪存)作为存储介质的固态硬盘具有需要擦除才能写入,不能覆盖写,闪存块具有一定寿命,每擦除一次都会对闪存块造成磨损等问题。
由于闪存块不能覆盖写的特性,当写入新的数据时,不能在老地方直接更改,必须写到一个新的位置。往一个新的位置写入数据,会导致老位置上的数据无效,这些数据就变为了垃圾数据。垃圾数据会占用闪存空间,当闪存空间不够用时,闪存转换层需要做垃圾回收,即把若干个闪存块上的有效数据搬出来,写到某个新的闪存块上,然后把这些之前的闪存块擦除,得到可用的闪存块,这就是垃圾回收的过程。当回收块中有效页数较高时,会导致写放大,即固态硬盘往闪存中写入的数据量比实际用户写入固态硬盘的数据量多,垃圾回收的等待时间也可能高达100ms。因此,垃圾回收对固态硬盘的读写性能和寿命都有很大的影响,可能是影响固态硬盘性能的重要瓶颈
现有的垃圾回收方法存在以下问题:大部分算法都是基于挑选具有最少有效页面数的块作为回收块的贪婪算法。但是该算法可能导致块的擦除次数不平衡,从而造成磨损不平衡,使得一些块很快就变成坏块不能再使用了。如果选择擦除次数最小的块作为回收块,则会增加垃圾回收迁移数据的开销,并且一部分垃圾回收过程可能会使I/O延迟,影响固态硬盘的读写性能。
发明内容
本发明的目的在于克服现有技术的不足,提出了一种适用于固态盘的动态调整垃圾回收方法,突破垃圾回收过程同时考虑回收块的无效页面数和块的擦除次数这一矛盾,达到两者的平衡,并且降低垃圾回收过程对I/O性能的影响,提高固态硬盘的读写性能和寿命。
为了实现上述目的,本发明所提供的技术方案为:一种适用于固态盘的动态调整垃圾回收方法,包括以下步骤:
1)获取基础数据,包括块的无效页面数、块的擦除次数、固态硬盘容量和固态硬盘空闲空间的大小;
2)根据固态硬盘容量设定两级阈值T1、T2,该阈值表示固态硬盘的空闲容量占固态硬盘总容量的百分比,其中T1<T2;
3)判断固态硬盘空闲空间的大小位于哪个范围,判断是否立刻进行垃圾回收操作;
4)利用数据进行计算,预测选择哪一个块进行回收最好;
5)进行垃圾回收操作。
在步骤1)中,固态硬盘在写数据的时候记录和维护每个块的无效页面数和擦除次数。
在步骤3)中,判断固态硬盘空闲空间大小和阈值的关系具体过程如下:
3.1)根据当前固态硬盘空闲空间的大小计算出空闲空间占整个固态硬盘容量的百分比T;
3.2)判断T的大小与T1、T2的关系,如果T≤T1,则能够中断正在执行的I/O操作,立刻执行垃圾回收;如果T>T1,则能够等待固态硬盘空闲的时候再进行垃圾回收操作;
在步骤4)中,通过判断T与T1、T2的关系,判断选择哪一个计算公式对数据进行计算,来选择回收块,具体如下:
如果T≤T1,则使用贪婪算法,即选择无效数据页面数最多的块进行垃圾回收操作;
如果T1<T<T2,则通过下面的公式计算得到一个数值:
其中,f(i)表示第i块的得分,i=1,2,...n,n为固态硬盘块的数量;invalid(i)表示第i块上的无效页面数,page_block表示一块中的物理页数,erasure(i)表示第i块的擦除次数;max_erasure表示所有块中,块擦除次数的最大值;
在计算得出的n个值中,选择数值最大的块作为回收块;
如果T≥T2,则通过下面的公式计算得到一个数值:
在计算得出的n个值中,选择数值最大的块作为回收块。
在步骤5)中,执行垃圾回收操作,具体过程如下:
5.1)将回收块中的有效数据写入到其它块中。
5.2)将回收块擦除。
本发明与现有技术相比,具有如下优点与有益效果:
1、本发明可以动态的调整垃圾回收方法,根据固态硬盘空闲空间大小来判断选用那种垃圾回收方法。
2、本发明方法综合考虑了回收效率和磨损平衡,解决了选择回收块时同时考虑无效页面数和擦除次数这一矛盾,提高了固态硬盘的性能和寿命。
3、本发明方法在非紧急情况下不会影响正常的I/O操作,提高了读写效率。
附图说明
图1为本发明方法的流程示意图。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
如图1所示,本实施例所提供的适用于固态盘的动态调整垃圾回收方法,包括以下步骤:
1)获取基础数据,包括块的无效页面数,块的擦除次数,固态硬盘容量、固态硬盘空闲空间的大小。固态硬盘在写数据的时候做了一些额外的工作,即记录和维护每个块的无效页面数和擦除次数。
2)根据固态硬盘容量设定两级阈值。根据固态硬盘的容量设定两级阈值T1、T2,该阈值表示固态硬盘的空闲容量占固态硬盘总容量的百分比,其中T1<T2。
3)判断固态硬盘的空闲空间的大小位于哪个范围,判断是否立刻进行垃圾回收操作。
3.1)根据当前固态硬盘空闲空间的大小计算出空闲空间占整个固态硬盘容量的百分比T;
3.2)判断T的大小与T1、T2的关系,如果T≤T1,则可以中断正在执行的I/O操作,立刻执行垃圾回收。如果T>T1,则可以等待固态硬盘空闲的时候再进行垃圾回收操作。
4)通过判断T与T1、T2的关系,判断选择哪一个计算公式对数据进行计算,来选择回收块,具体如下:
如果T≤T1,则使用贪婪算法,即选择无效数据页面数最多的块进行垃圾回收操作。
如果T1<T<T2,则通过下面的公式计算得到一个数值:
其中,f(i)(i=1,2,...n;n为固态硬盘块的数量)表示第i块的得分,invalid(i)表示第i块上的无效页面数,page_block表示一块中的物理页数,erasure(i)表示第i块的擦除次数,max_erasure表示所有块中,块擦除次数的最大值。
在计算得出的n个值中,选择数值最大的块作为回收块。
如果T≥T2,则通过下面的公式计算得到一个数值:
在计算得出的n个值中,选择数值最大的块作为回收块。
在步骤5)中,执行垃圾回收操作,具体过程如下:
5.1)将回收块中的有效数据写入到其他块中。
5.2)将回收块擦除。
综上所述,在采用上述方案后,本发明为固态硬盘的垃圾回收过程提供了一种新的方法,将动态调整垃圾回收方法作为垃圾回收过程优化的一种有效手段,能够有效提高垃圾回收的效率,具有实际推广价值,值得推广。
以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
Claims (4)
1.一种适用于固态盘的动态调整垃圾回收方法,其特征在于,包括以下步骤:
1)获取基础数据,包括块的无效页面数、块的擦除次数、固态硬盘容量和固态硬盘空闲空间的大小;
2)根据固态硬盘容量设定两级阈值T1、T2,该阈值表示固态硬盘的空闲容量占固态硬盘总容量的百分比,其中T1<T2;
3)判断固态硬盘空闲空间的大小位于哪个范围,判断是否立刻进行垃圾回收操作;
4)利用数据进行计算,预测选择哪一个块进行回收最好;
5)进行垃圾回收操作。
2.根据权利要求1所述的一种适用于固态盘的动态调整垃圾回收方法,其特征在于:在步骤1)中,固态硬盘在写数据的时候记录和维护每个块的无效页面数和擦除次数。
3.根据权利要求1所述的一种适用于固态盘的动态调整垃圾回收方法,其特征在于:在步骤3)中,判断固态硬盘空闲空间大小和阈值的关系具体过程如下:
3.1)根据当前固态硬盘空闲空间的大小计算出空闲空间占整个固态硬盘容量的百分比T;
3.2)判断T的大小与T1、T2的关系,如果T≤T1,则能够中断正在执行的I/O操作,立刻执行垃圾回收;如果T>T1,则能够等待固态硬盘空闲的时候再进行垃圾回收操作;
在步骤4)中,通过判断T与T1、T2的关系,判断选择哪一个计算公式对数据进行计算,来选择回收块,具体如下:
如果T≤T1,则使用贪婪算法,即选择无效数据页面数最多的块进行垃圾回收操作;
如果T1<T<T2,则通过下面的公式计算得到一个数值:
其中,f(i)表示第i块的得分,i=1,2,...n,n为固态硬盘块的数量;invalid(i)表示第i块上的无效页面数,page_block表示一块中的物理页数,erasure(i)表示第i块的擦除次数;max_erasure表示所有块中,块擦除次数的最大值;
在计算得出的n个值中,选择数值最大的块作为回收块;
如果T≥T2,则通过下面的公式计算得到一个数值:
在计算得出的n个值中,选择数值最大的块作为回收块。
4.根据权利要求1所述的一种适用于固态盘的动态调整垃圾回收方法,其特征在于:在步骤5)中,执行垃圾回收操作,具体过程如下:
5.1)将回收块中的有效数据写入到其它块中。
5.2)将回收块擦除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910480344.XA CN110347612A (zh) | 2019-06-04 | 2019-06-04 | 一种适用于固态盘的动态调整垃圾回收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910480344.XA CN110347612A (zh) | 2019-06-04 | 2019-06-04 | 一种适用于固态盘的动态调整垃圾回收方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110347612A true CN110347612A (zh) | 2019-10-18 |
Family
ID=68181443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910480344.XA Pending CN110347612A (zh) | 2019-06-04 | 2019-06-04 | 一种适用于固态盘的动态调整垃圾回收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347612A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928852A (zh) * | 2019-12-09 | 2020-03-27 | Oppo广东移动通信有限公司 | 一种垃圾回收方法、装置及计算机可读存储介质 |
CN111090595A (zh) * | 2019-11-19 | 2020-05-01 | 中国航空工业集团公司西安航空计算技术研究所 | 一种nand flash垃圾回收均衡优化方法 |
CN111158598A (zh) * | 2019-12-29 | 2020-05-15 | 北京浪潮数据技术有限公司 | 一种全闪磁盘阵列的垃圾回收方法、装置、设备及介质 |
CN111708713A (zh) * | 2020-05-20 | 2020-09-25 | 杭州电子科技大学 | 一种固态硬盘智能垃圾回收与调度方法 |
CN113495830A (zh) * | 2020-04-02 | 2021-10-12 | 深圳星火半导体科技有限公司 | 垃圾回收算法效率的测试分析方法及系统 |
CN117369712A (zh) * | 2022-10-28 | 2024-01-09 | 华为技术有限公司 | 垃圾回收的方法、页面存储的方法和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130311702A1 (en) * | 2012-05-18 | 2013-11-21 | Silicon Motion, Inc. | Data storage device and method for flash block management |
CN104461922A (zh) * | 2014-12-29 | 2015-03-25 | 北京奇虎科技有限公司 | 系统优化方法及装置 |
CN106484323A (zh) * | 2016-09-13 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种固态存储的损耗均衡方法及系统 |
CN108595112A (zh) * | 2018-03-14 | 2018-09-28 | 深圳忆联信息系统有限公司 | 一种优化触发机制的ssd垃圾回收方法及固态硬盘 |
CN108628758A (zh) * | 2018-03-14 | 2018-10-09 | 深圳忆联信息系统有限公司 | 一种选择垃圾回收目标块的方法及固态硬盘 |
-
2019
- 2019-06-04 CN CN201910480344.XA patent/CN110347612A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130311702A1 (en) * | 2012-05-18 | 2013-11-21 | Silicon Motion, Inc. | Data storage device and method for flash block management |
CN104461922A (zh) * | 2014-12-29 | 2015-03-25 | 北京奇虎科技有限公司 | 系统优化方法及装置 |
CN106484323A (zh) * | 2016-09-13 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种固态存储的损耗均衡方法及系统 |
CN108595112A (zh) * | 2018-03-14 | 2018-09-28 | 深圳忆联信息系统有限公司 | 一种优化触发机制的ssd垃圾回收方法及固态硬盘 |
CN108628758A (zh) * | 2018-03-14 | 2018-10-09 | 深圳忆联信息系统有限公司 | 一种选择垃圾回收目标块的方法及固态硬盘 |
Non-Patent Citations (2)
Title |
---|
方才华等: "全程优化的固态硬盘垃圾回收方法", 《计算机应用》 * |
李红艳: "《固态盘I/O优化技术研究》", 30 April 2017 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090595A (zh) * | 2019-11-19 | 2020-05-01 | 中国航空工业集团公司西安航空计算技术研究所 | 一种nand flash垃圾回收均衡优化方法 |
CN111090595B (zh) * | 2019-11-19 | 2022-12-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种nand flash垃圾回收均衡优化方法 |
CN110928852A (zh) * | 2019-12-09 | 2020-03-27 | Oppo广东移动通信有限公司 | 一种垃圾回收方法、装置及计算机可读存储介质 |
CN110928852B (zh) * | 2019-12-09 | 2022-12-02 | Oppo广东移动通信有限公司 | 一种垃圾回收方法、装置及计算机可读存储介质 |
CN111158598A (zh) * | 2019-12-29 | 2020-05-15 | 北京浪潮数据技术有限公司 | 一种全闪磁盘阵列的垃圾回收方法、装置、设备及介质 |
CN111158598B (zh) * | 2019-12-29 | 2022-03-22 | 北京浪潮数据技术有限公司 | 一种全闪磁盘阵列的垃圾回收方法、装置、设备及介质 |
CN113495830A (zh) * | 2020-04-02 | 2021-10-12 | 深圳星火半导体科技有限公司 | 垃圾回收算法效率的测试分析方法及系统 |
CN111708713A (zh) * | 2020-05-20 | 2020-09-25 | 杭州电子科技大学 | 一种固态硬盘智能垃圾回收与调度方法 |
CN111708713B (zh) * | 2020-05-20 | 2022-07-05 | 杭州电子科技大学 | 一种固态硬盘智能垃圾回收与调度方法 |
CN117369712A (zh) * | 2022-10-28 | 2024-01-09 | 华为技术有限公司 | 垃圾回收的方法、页面存储的方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347612A (zh) | 一种适用于固态盘的动态调整垃圾回收方法 | |
CN108108128A (zh) | 一种混合ssd的磨损均衡方法及ssd | |
US7882301B2 (en) | Wear leveling in storage devices based on flash memories and related circuit, system, and method | |
CN102508785B (zh) | 一种磨损均衡方法及装置 | |
CN110688326A (zh) | 一种基于多阈值的闪存磨损均衡算法 | |
US8984207B2 (en) | Memory system performing incremental merge operation and data write method | |
CN101640069B (zh) | 用于闪速存储器的平均磨损方法与平均磨损系统 | |
CN111708713B (zh) | 一种固态硬盘智能垃圾回收与调度方法 | |
CN112328169B (zh) | 固态硬盘的磨损均衡方法、装置及计算机可读存储介质 | |
CN111708481B (zh) | 一种基于超级块的固态硬盘ssd双区磨损均衡处理方法 | |
CN108228341B (zh) | 内存回收方法及装置、终端设备及计算机可读存储介质 | |
CN102799535A (zh) | 固态硬盘的数据处理方法及固态硬盘 | |
CN102880556A (zh) | 一种实现Nand Flash磨损均衡的方法及其系统 | |
CN103440207A (zh) | 缓存方法及装置 | |
CN107491272B (zh) | 一种数据迁移的方法、装置、设备及存储介质 | |
CN108874309B (zh) | 一种管理固态硬盘中物理块的方法和装置 | |
CN106528000B (zh) | 一种数据存储装置及其读写性能优化方法、系统 | |
CN101419834A (zh) | 平均磨损方法及使用此方法的控制器 | |
CN109684119B (zh) | 应用于NAND Flash损耗均衡的优化方法 | |
CN111090595B (zh) | 一种nand flash垃圾回收均衡优化方法 | |
CN112506445B (zh) | 一种同质混合固态硬盘的分区比例自适应调整方法 | |
CN102419734B (zh) | 一种数据存储的方法及装置 | |
CN101409108B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN106951193B (zh) | 改善Nand Flash存储性能的方法及其系统 | |
CN105653466A (zh) | 数据储存装置以及快闪存储器控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191018 |