固态存储设备的垃圾回收方法及装置与流程

文档序号:12747955阅读:310来源:国知局
固态存储设备的垃圾回收方法及装置与流程

本发明属于电子存储技术领域,尤其涉及一种固态存储设备的垃圾回收方法及装置。



背景技术:

随着电子存储技术的发展,固态存储设备的应用越来越广泛。固态硬盘(Solid State Disk或Solid State Drive,以下简称SSD),也称作电子硬盘或者固态电子盘,是一种由控制单元和固态存储单元组成的固态存储设备。根据SSD内部存储介质特性的不同,SSD通常分为两种类型,一类是基于随机动态存取存储单元(Dynamic Random Access Memory,简称DRAM)的SSD,一类是基于闪存单元(Flash Memory,简称Flash)的SSD。随着半导体工业的发展,闪存单元的集成度愈来愈高,基于闪存单元的SSD以其存储容量大、体积小、可移动、绿色省电和无机械部件可靠性高等优点被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等领域。

为了提高读写速度,目前基于闪存单元的SSD普遍采用一控制单元通过多个通道同时并行控制多片闪存单元数据进行读写操作。由于基于闪存介质的SSD具有异地更新的特性,SSD在使用一段时间后会存在大量的无效数据,需要通过垃圾回收方法来回收无效数据占据的物理块,以增加SSD中可用的物理空间。在现有技术中,SSD中所有闪存单元的垃圾回收触发机制是统一的,通常采用空闲块阈值作为触发垃圾回收操作的判断标准,亦即当SSD中空白物理块的数量小于空闲块阈值时,触发SSD的垃圾回收操作。垃圾回收的过程一般是先读取被选中的逻辑块所对应的所有物理块中的物理页的有效数据,将该有效数据对应写入空白物理块的物理页中,再对被选中的逻辑块所对应的所有物理块进行擦除操作。由于垃圾回收过程中涉及到有效数据的搬迁和物理块的擦除操作,在有效数据搬迁和物理块擦除时有效数据的源物理页和目的物理页所在的闪存单元以及待擦除的物理块所在的闪存单元均会被占用,垃圾回收操作的开销也会随着逻辑块所对应的物理块数量的增加而增加。对于大容量的固态存储设备而言,这样的垃圾回收开销是无法估量的,并且会严重影响固态存储设备的读写性能,降低读写效率。



技术实现要素:

本发明实施例的目的在于提供一种固态存储设备的垃圾回收方法及装置,用以解决现有技术中垃圾回收开销大,并且严重影响固态存储设备读写性能的问题。

一方面,本发明实施例提供一种固态存储设备的垃圾回收方法,包括:

将固态存储设备的各闪存通道所对应的闪存单元划分为第一闪存单元簇和第二闪存单元簇,其中所述第一闪存单元簇被优先选用进行读写操作;

当第一触发条件满足时,对所述第一闪存单元簇进行垃圾回收操作;

当所述第一闪存单元簇进行垃圾回收操作时,选用所述第二闪存单元簇进行新数据的写操作;

当所述第一闪存单元簇完成垃圾回收操作时,选用所述第一闪存单元簇进行新数据的写操作;

当第二触发条件满足时,对所述第二闪存单元簇进行垃圾回收操作。

另一方面,本发明实施例提供一种固态存储设备的垃圾回收装置,包括:

闪存划分模块,用于将固态存储设备的各闪存通道所对应的闪存单元划分为第一闪存单元簇和第二闪存单元簇,其中所述第一闪存单元是被优先选用进行读写操作的闪存单元簇;

第一垃圾回收模块,用于当第一触发条件满足时,对所述第一闪存单元簇进行垃圾回收操作;

第一闪存选用模块,用于当所述第一闪存单元簇进行垃圾回收操作时,选用所述第二闪存单元簇进行新数据的写操作;

第二闪存选用模块,用于当所述第一闪存单元簇完成垃圾回收操作时,选用所述第一闪存单元簇进行新数据的写操作;

第二垃圾回收模块,用于当第二触发条件满足时,对所述第二闪存单元簇进行垃圾回收操作。

从上述本发明实施例可知,本发明方案通过将固态存储设备各闪存通道所对应的闪存单元划分为两个闪存单元簇,并优先使用其中一个闪存单元簇进行读写操作,当被优先使用的闪存单元簇对应的触发条件满足时,对该优先使用的闪存单元簇进行垃圾回收操作,同时选用另一闪存单元簇进行新数据的写操作,当该闪存单元簇完成垃圾回收操作时,再选用该闪存单元簇进行新数据的写操作,这样不仅可使垃圾回收操作和新数据的写操作分别在不同的闪存单元上进行,并且可提前垃圾回收操作,减少垃圾回收的开销,有效降低垃圾回收带来的读写性能损失。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中固态存储设备的多通道并行架构示意图;

图2为本发明第一实施例中固态存储设备的垃圾回收方法的流程示意图;

图3为本发明第二实施例中固态存储设备的垃圾回收方法的流程示意图;

图4为本发明第三实施例中固态存储设备的垃圾回收装置的功能模块示意图。

图5为本发明第四实施例中固态存储设备的垃圾回收装置的功能模块示意图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例所提供的固态存储设备的垃圾回收方法及装置主要应用于采用多通道并行技术的大容量固态存储设备上。为便于理解,首先需要对本发明实施例中固态存储设备的多通道并行架构进行简单说明。

请参阅图1,为本发明实施例中固态存储设备的多通道并行架构示意图。如图1所示,本发明实施例中的固态存储设备包含一控制单元、m个闪存通道和m×n个闪存单元,并支持串行ATA(Serial Advanced Technology Attachment,简称SATA)接口,每个闪存通道对应n个闪存单元,其中,m为8的整数倍,n为大于1的自然数。控制单元通过m个闪存通道控制所有闪存单元的操作。

针对现有技术中存在的问题,本发明实施例是将固态存储设备中各闪存通道所对应的闪存单元划分为两个闪存单元簇,并为两个闪存单元簇分别设定了垃圾回收操作的触发条件,以使垃圾回收操作和新数据的写操作可以同时在不同的闪存单元簇上进行。下面将结合附图分别对本发明实施例所提供的固态存储设备的垃圾回收方法及装置进行详细说明。

请参阅图2,为本发明第一实施例中固态存储设备的垃圾回收方法的流程示意图。如图2所示,本发明实施例所提供的固态存储设备的垃圾回收方法包括以下步骤:

步骤101、将固态存储设备的各闪存通道所对应的闪存单元划分为第一闪存单元簇和第二闪存单元簇,其中第一闪存单元簇被优先选用进行读写操作;

步骤102、当第一触发条件满足时,对第一闪存单元簇进行垃圾回收操作;

步骤103、当第一闪存单元簇进行垃圾回收操作时,选用第二闪存单元簇进行新数据的写操作;

步骤104、当第一闪存单元簇完成垃圾回收操作时,选用第一闪存单元簇进行新数据的写操作;

步骤105、当第二触发条件满足时,对第二闪存单元簇进行垃圾回收操作。

需要说明的是,在本发明实施例中,第一触发条件是指触发第一闪存单元进行垃圾回收操作的条件,该第一触发条件可以为第一闪存单元簇中空白物理块的数量小于预设的第一空闲块阈值;所述步骤102对应为:当判断第一闪存单元簇中空白物理块的数量小于预设的第一空闲块阈值时,对第一闪存单元簇进行垃圾回收操作。第二触发条件是指触发第二闪存单元进行垃圾回收操作的条件,该第二触发条件可以为第二闪存单元簇中存在单个逻辑块对应的物理块数量大于预设的物理块阈值;所述步骤105对应为:当判断第二闪存单元簇中存在单个逻辑块对应的物理块数量大于预设的物理块阈值时,对第二闪存单元簇进行垃圾回收操作。

在下一实施例中将针对垃圾回收的触发机制进行具体说明。

请参阅图3,为本发明第二实施例中固态存储设备的垃圾回收方法的流程示意图。如图3所示,本发明实施例所提供的固态存储设备的垃圾回收方法包括以下步骤:

步骤201、将固态存储设备的各闪存通道所对应的闪存单元划分为第一闪存单元簇和第二闪存单元簇,其中第一闪存单元簇被优先选用进行读写操作;

可选地,结合图1所示固态存储设备的多通道并行架构示意图,在本发明实施例中,将固态存储设备的各闪存通道所对应的闪存单元划分为第一闪存单元簇和第二闪存单元簇的步骤,具体为:从固态存储设备的每个闪存通道所对应的闪存单元中选择n/2个闪存单元作为第一闪存单元簇,其余n/2个闪存单元则作为第二闪存单元簇。

步骤202、获取第一闪存单元簇中空白物理块的数量;

步骤203、判断第一闪存单元簇中空白物理块的数量是否小于预设的第一空闲块阈值;

步骤204、当判断第一闪存单元簇中空白物理块的数量小于第一空闲块阈值时,对第一闪存单元簇进行垃圾回收操作;

在本发明实施例中,对第一闪存单元簇进行垃圾回收操作的流程具体包括以下步骤:

(1)在第一闪存单元簇对应的逻辑块中查找对应物理块数量最多的第一逻辑块;

(2)为第一逻辑块在第一闪存单元簇中选择空白物理块作为第一空白物理块;

(3)依序对第一逻辑块对应的所有物理块进行读取操作,并将从物理块的物理页中读取出来的有效数据对应写入第一空白物理块的物理页中;

(4)对第一逻辑块对应的所有物理块进行擦除操作,并将第一逻辑块对应第一空白物理块。

步骤205、当第一闪存单元簇进行垃圾回收操作时,选用第二闪存单元簇进行新数据的写操作;

步骤206、当第一闪存单元簇完成垃圾回收操作时,选用第一闪存单元簇进行新数据的写操作;

步骤207、获取第二闪存单元簇中每个逻辑块对应的物理块数量;

步骤208、判断第二闪存单元簇中是否存在单个逻辑块对应的物理块数量大于预设的物理块阈值;

步骤209、当判断第二闪存单元簇中存在单个逻辑块对应的物理块数量大于物理块阈值时,对第二闪存单元簇进行垃圾回收操作。

在本发明实施例中,对第二闪存单元簇进行垃圾回收操作的过程具体包括以下步骤:

(1)在第二闪存单元簇对应的逻辑块中查找对应物理块数量最多的第二逻辑块;

(2)为第二逻辑块在第二闪存单元簇中选择空白物理块作为第二空白物理块;

(3)依序对第二逻辑块对应的所有物理块进行读取操作,并将从物理块的物理页中读取出来的有效数据对应写入第二空白物理块的物理页中;

(4)对第二逻辑块对应的所有物理块进行擦除操作,并将第二逻辑块对应第二空白物理块。

可选地,在本发明实施例的固态存储设备的垃圾回收方法中还可针对第二闪存单元簇再设定一套垃圾回收触发机制,以使得第二闪存单元簇在实际应用中可通过不同垃圾回收触发条件触发垃圾回收,从而增加可用的物理空间。具体地,本发明实施例所述的固态存储设备的垃圾回收方法还可包括以下步骤:

获取第二闪存单元簇中空白物理块的数量;

判断第二闪存单元簇中空白物理块的数量是否小于预设的第二空闲块阈值;

当判断第二闪存单元簇中空白物理块的数量小于第二空闲块阈值时,在第二闪存单元簇对应的逻辑块中查找对应物理块数量最多的第三逻辑块;

为第三逻辑块在第二闪存单元簇中选择空白物理块作为第三空白物理块;

依序对第三逻辑块对应的所有物理块进行读取操作,并将从所有物理块的物理页中读取出来的有效数据对应写入第二空白物理块的物理页中;

对第三逻辑块对应的所有物理块进行擦除操作,并将第三逻辑块对应第三空白物理块。

请参阅图4,为本发明第三实施例中固态存储设备的垃圾回收装置的功能模块示意图。如图4所示,本发明实施例的固态存储设备的垃圾回收装置包括:

闪存划分模块301,用于将固态存储设备的各闪存通道所对应的闪存单元划分为第一闪存单元簇和第二闪存单元簇,其中第一闪存单元是被优先选用进行读写操作的闪存单元簇;

第一垃圾回收模块302,用于当第一触发条件满足时,对第一闪存单元簇进行垃圾回收操作;

第一闪存选用模块303,用于当第一闪存单元簇进行垃圾回收操作时,选用第二闪存单元簇进行新数据的写操作;

第二闪存选用模块304,用于当第一闪存单元簇完成垃圾回收操作时,选用第一闪存单元簇进行新数据的写操作;

第二垃圾回收模块305,用于当第二触发条件满足时,对第二闪存单元簇进行垃圾回收操作。

在本发明实施例中,第一触发条件可以为第一闪存单元簇中空白物理块的数量小于预设的第一空闲块阈值;第一垃圾回收模块302,具体用于当判断第一闪存单元簇中空白物理块的数量小于第一空闲块阈值时,对第一闪存单元簇进行垃圾回收操作。第二触发条件可以为第二闪存单元簇中存在单个逻辑块对应的物理块数量大于预设的物理块阈值;第二垃圾回收模块305,具体用于当判断第二闪存单元簇中存在单个逻辑块对应的物理块数量大于物理块阈值时,对第二闪存单元簇进行垃圾回收操作。

请参阅图5,为本发明第四实施例中固态存储设备的垃圾回收装置的功能模块示意图。如图5所示,本发明实施例的固态存储设备的垃圾回收装置包括:

闪存划分模块401,用于将固态存储设备的各闪存通道所对应的闪存单元划分为第一闪存单元簇和第二闪存单元簇,其中第一闪存单元是被优先选用进行读写操作的闪存单元簇;

第一获取模块402,用于获取第一闪存单元簇中空白物理块的数量;

第一判断模块403,用于判断第一闪存单元簇中空白物理块的数量是否小于预设的第一空闲块阈值;

第一垃圾回收模块404,用于当判断第一闪存单元簇中空白物理块的数量小于第一空闲块阈值时,对第一闪存单元簇进行垃圾回收操作;

第一闪存选用模块405,用于当第一闪存单元簇进行垃圾回收操作时,选用第二闪存单元簇进行新数据的写操作;

第二闪存选用模块406,用于当第一闪存单元簇完成垃圾回收操作时,选用第一闪存单元簇进行新数据的写操作;

第二获取模块407,用于获取第二闪存单元簇中每个逻辑块对应的物理块数量;

第二判断模块408,用于判断第二闪存单元簇中是否存在单个逻辑块对应的物理块数量大于预设的物理块阈值;

第二垃圾回收模块409,用于当判断第二闪存单元簇中存在单个逻辑块对应的物理块数量大于物理块阈值时,对第二闪存单元簇进行垃圾回收操作。

在本发明实施例中,固态存储设备包含m个闪存通道,每个闪存通道对应n个闪存单元,其中m为8的整数倍,n为大于1的自然数;闪存划分单元具体用于从固态存储设备的每个闪存通道所对应的闪存单元中选择n/2个闪存单元作为第一闪存单元簇,其余n/2个闪存单元则作为第二闪存单元簇。

本发明实施例中的第一垃圾回收模块404具体包括:

第一查找子模块,用于在第一闪存单元簇对应的逻辑块中查找对应物理块数量最多的第一逻辑块;

第一选择子模块,用于为第一逻辑块在第一闪存单元簇中选择空白物理块作为第一空白物理块;

第一读写子模块,用于依序对第一逻辑块对应的所有物理块进行读取操作,并将从所有物理块的物理页中读取出来的有效数据对应写入第一空白物理块的物理页中;

第一擦除子模块,用于对第一逻辑块对应的所有物理块进行擦除操作,并将第一逻辑块对应第一空白物理块。

另外,本发明实施例中的第二垃圾回收模块409具体包括:

第二查找子模块,用于在第二闪存单元簇对应的逻辑块中查找对应物理块数量最多的第二逻辑块;

第二选择子模块,用于为第二逻辑块在第二闪存单元簇中选择空白物理块作为第二空白物理块;

第二读写子模块,用于依序对第二逻辑块对应的所有物理块进行读取操作,并将从所有物理块的物理页中读取出来的有效数据对应写入第二空白物理块的物理页中;

第二擦除子模块,用于对第二逻辑块对应的所有物理块进行擦除操作,并将第二逻辑块对应第二空白物理块。

可选地,本发明实施例的固态存储设备的垃圾回收装置还可包括:

第三获取模块,用于获取第二闪存单元簇中空白物理块的数量;

第三判断模块,用于判断第二闪存单元簇中空白物理块的数量是否小于预设的第二空闲块阈值;

第三查找模块,用于当判断第二闪存单元簇中空白物理块的数量小于第二空闲块阈值时,在第二闪存单元簇对应的逻辑块中查找对应物理块数量最多的第三逻辑块;

第三选择模块,用于为第三逻辑块在第二闪存单元簇中选择空白物理块作为第三空白物理块;

第三读写模块,用于依序对第三逻辑块对应的所有物理块进行读取操作,并将从所有物理块的物理页中读取出来的有效数据对应写入第三空白物理块的物理页中;

第三擦除模块,用于对第三逻辑块对应的所有物理块进行擦除操作,并将第三逻辑块对应第三空白物理块。

综上所述,本发明实施例所提供的固态存储设备的垃圾回收方法及装置通过将固态存储设备各闪存通道所对应的闪存单元划分为两个闪存单元簇,并优先使用其中一个闪存单元簇进行读写操作,当被优先使用的闪存单元簇对应的触发条件满足时,对该优先使用的闪存单元簇进行垃圾回收操作,同时选用另一闪存单元簇进行新数据的写操作,当该闪存单元簇完成垃圾回收操作时,再选用该闪存单元簇进行新数据的写操作,这样不仅可使垃圾回收操作和新数据的写操作分别在不同的闪存单元上进行,并且可提前垃圾回收操作,减少垃圾回收的开销,有效降低垃圾回收带来的读写性能损失。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来控制相关的硬件完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘、U盘、移动硬盘等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1