本发明属于通信技术领域,尤其涉及固态硬盘闪存的垃圾回收方法及装置。
背景技术:
固态硬盘(Solid State Disk或者Solid State Drive,SSD)也称作电子硬盘或者固态电子盘,是用固态电子存储芯片阵列制成的硬盘。固态硬盘被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空和导航设备等领域。固态硬盘是由控制单元和固态存储单元组成的存储设备,目前支持SATA(Serial Advanced Technology Attachment,串行高级技术附件)接口、SATA-2接口、SATA-3接口、MSATA(Mini SATA,迷你SATA)接口、FC(Fiber Channel,光纤通道)接口、SAS(Serial Attached Small Computer System,串行附接小型计算机系统)接口和PCI-E(Peripheral Component Interconnect Express,快速外设部件互连)接口等,可以替代普通的机械硬盘。其中,固态存储单元可以为DRAM(Dynamic Random Access Memory,动态随机存取存储器)或者Flash(闪存)。固态硬盘根据容量、可靠性和性能分为SLC(Single-Level Cell,单层单元)固态硬盘和MLC(Multi-Level Cell,多层单元)固态硬盘。其中,SLC固态硬盘主要应用于服务器和工作站等高可行性环境中,MLC固态硬盘主要应用于PC(Personal Computer,个人计算机)等对可靠性要求不高的环境中。
相比传统的机械硬盘,固态硬盘具有以下优势:第一,数据存取速度快。由于全部采用闪存芯片,固态硬盘的内部不存在任何机械部件,因此固态硬盘在密集的输入输出读写和低延迟方面与机械硬盘对比性能优异。第二,故障率低。防震抗衰是固态硬盘的特点之一。即使在高速移动甚至伴随翻转倾斜的情况下也不会影响设备的正常使用,并且在笔记本电脑发生意外掉落或者与硬物碰撞时能够将数据丢失的可能性降到最小。第三,绿色环保。由于固态硬盘没有机械马达和风扇,因此固态硬盘在工作时静音,且发热量小、散热快。第四,重量更轻,有利于移动设备的携带。目前,机械硬盘的容量每年增速较慢,读写速度几乎没有增加,而处理器的速度按摩尔定律成倍增加,导致机械硬盘已经成为计算机系统性能的瓶颈。随着半导体工业的发展,闪存的集成度越来越高,且成本不断下降。在采用多通道并行等技术下,固态硬盘以其读写速度快、绿色省电和无机械部件可靠性高等优势,在高端服务器、存储和便携机中得到越来越广泛的应用。
固态硬盘的存储介质分为两种,其中一种是采用闪存作为存储介质。基于闪存的固态硬盘包括IDE(Integrated Development Environment,集成开发环境)闪存硬盘和SATA闪存硬盘等。基于闪存的固态硬盘可以被制作成笔记本硬盘、微硬盘、存储卡和U盘(Universal Serial Bus Flash Disk,通用串行总线闪存盘)等样式。这种固态硬盘最大的优点是可以移动,且数据保存不受电源限制,能适用于各种环境,适合个人用户使用。NAND闪存具有存储容量大、体积小、成本低、抗振动和功耗低等优点,被广泛应用于嵌入式存储系统和高性能企业级存储系统。NAND闪存是U盘、SD(Secure Digital,安全数码)存储卡和固态硬盘等存储设备的核心存储器件。
由于目前NAND闪存的数据总线为8bit,最大能提供25MB/s的读速度和3MB/s的写速度。显然,如果固态硬盘仅能提供这样的读写速度,则用户是无法接受的。因此,目前SSD控制器普遍采用多个通道同时并行操作多片Flash的方式,例如RAID0,从而使读写速度得到了极大的提高,如图1所示。SSD控制器控制m×n个Flash,其中m表示Flash通道个数,n表示Flash通道对应的Flash芯片个数。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:现有的垃圾回收机制是当Flash中空白物理块的个数小于空闲块阈值时,触发Flash查找物理块最多的逻辑块,由于垃圾回收的开销会随着逻辑块对应的物理块的数量的增加而增加,因此,现有技术的垃圾回收产生的开销是无法估量的。
技术实现要素:
鉴于此,本发明实施例提供了一种固态硬盘闪存的垃圾回收方法及装置,以解决现有的固态硬盘闪存的垃圾回收的开销会随着逻辑块对应的物理块的数量的增加而增加,垃圾回收的开销无法估量的问题。
第一方面,本发明实施例提供了一种固态硬盘闪存的垃圾回收方法,包括:
将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存;
在接收到向所述固态硬盘写入新数据的请求信息时,检测所述第一类闪存是否处于垃圾回收状态;
若所述第一类闪存不处于垃圾回收状态,则在所述第一类闪存上写入所述新数据;
若所述第一类闪存处于垃圾回收状态,则在所述第二类闪存上写入所述新数据。
对于上述方法,在一种可能的实现方式中,在将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存之后,所述方法还包括:
当所述第一类闪存中空白物理块的个数小于第一预设值时,触发所述第一类闪存的垃圾回收机制。
对于上述方法,在一种可能的实现方式中,在将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存之后,所述方法还包括:
当所述第二类闪存的逻辑块对应的物理块的个数大于第二预设值时,触发所述第二类闪存的垃圾回收机制。
对于上述方法,在一种可能的实现方式中,将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存,具体为:
将固态硬盘控制器控制的每个闪存通道对应的n个闪存中的个闪存作为第一类闪存,并将其余的个闪存作为第二类闪存,其中,[]表示取整函数。
对于上述方法,在一种可能的实现方式中,所述垃圾回收机制用于:
将所述闪存中物理块的个数最多的逻辑块确定为待回收逻辑块;
选择新的空白物理块;
顺序读取所述待回收逻辑块对应的各个物理块,并将所述各个物理块对应的物理页中最新更新的有效数据写入所述新的空白物理块对应的物理页中;
擦除所述各个物理块。
第二方面,本发明实施例提供了一种固态硬盘闪存的垃圾回收装置,包括:
闪存分类模块,用于将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存;
检测模块,用于在接收到向所述固态硬盘写入新数据的请求信息时,检测所述第一类闪存是否处于垃圾回收状态;
第一新数据写入模块,用于若所述第一类闪存不处于垃圾回收状态,则在所述第一类闪存上写入所述新数据;
第二新数据写入模块,若所述第一类闪存处于垃圾回收状态,则在所述第二类闪存上写入所述新数据。
对于上述装置,在一种可能的实现方式中,所述装置还包括:
第一触发模块,用于当所述第一类闪存中空白物理块的个数小于第一预设值时,触发所述第一类闪存的垃圾回收机制。
对于上述装置,在一种可能的实现方式中,所述装置还包括:
第二触发模块,用于当所述第二类闪存的逻辑块对应的物理块的个数大于第二预设值时,触发所述第二类闪存的垃圾回收机制。
对于上述装置,在一种可能的实现方式中,所述闪存分类模块具体用于:
将固态硬盘控制器控制的每个闪存通道对应的n个闪存中的个闪存作为第一类闪存,并将其余的个闪存作为第二类闪存,其中,[]表示取整函数。
对于上述装置,在一种可能的实现方式中,所述垃圾回收机制用于:
将所述闪存中物理块的个数最多的逻辑块确定为待回收逻辑块;
选择新的空白物理块;
顺序读取所述待回收逻辑块对应的各个物理块,并将所述各个物理块对应的物理页中最新更新的有效数据写入所述新的空白物理块对应的物理页中;
擦除所述各个物理块。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存,为第一类闪存和第二类闪存设置不同的垃圾回收机制,在接收到向固态硬盘写入新数据的请求信息时,检测第一类闪存是否处于垃圾回收状态,若否,则在第一类闪存上写入新数据,若是,则在第二类闪存上写入新数据,从而可以估量垃圾回收产生的开销,并在某一类闪存处于垃圾回收状态时,仍能进行新数据的写操作和数据的读取操作。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了现有的SSD多通道并发技术的示意图;
图2示出了本发明实施例提供的固态硬盘闪存的垃圾回收方法的实现流程图;
图3示出本发明实施例提供的固态硬盘闪存的垃圾回收方法中垃圾回收机制的一示例性的实现流程图;
图4示出本发明另一实施例提供的固态硬盘闪存的垃圾回收装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1
图2示出了本发明实施例提供的固态硬盘闪存的垃圾回收方法的实现流程图,详述如下:
在步骤S201中,将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存。
需要说明的是,本发明实施例的执行主体可以为固态硬盘,也可以为内置于固态硬盘中的装置,或者可以为其他固态硬盘闪存的垃圾回收装置,在此不作限定。本发明实施例中的闪存可以为三维闪存,在此不作限定。
在一种可能的实现方式中,将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存,具体为:将固态硬盘控制器控制的每个闪存通道对应的n个闪存中的个闪存作为第一类闪存,并将其余的个闪存作为第二类闪存,其中,[]表示取整函数。
例如,若某一闪存通道对应10个闪存,则可以将其中的5个闪存作为第一类闪存,将其余5个闪存作为第二类闪存。再例如,若某一闪存通道对应11个闪存,则可以将其中的5个闪存作为第一类闪存,将其余6个闪存作为第二类闪存。
在另一种可能的实现方式中,将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存,可以为:将固态硬盘控制器控制的每个闪存通道对应的n个闪存中的个闪存作为第二类闪存,并将其余的个闪存作为第一类闪存。
在步骤S202中,在接收到向固态硬盘写入新数据的请求信息时,检测第一类闪存是否处于垃圾回收状态,若否,则执行步骤S203;若是,则执行步骤S204。
在步骤S203中,在第一类闪存上写入新数据。
在步骤S204中,在第二类闪存上写入新数据。
在本发明实施例中,第一类闪存和第二类闪存的垃圾回收机制的触发条件不同。在接收到向固态硬盘写入新数据的请求信息时,判断第一类闪存是否处于垃圾回收状态。若第一类闪存不处于垃圾回收状态,则在第一类闪存上写入新数据;若第一类闪存处于垃圾回收状态,则在第二类闪存上写入新数据。
在一种可能的实现方式中,在将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存之后,该方法还包括:当第一类闪存中空白物理块的个数小于第一预设值时,触发第一类闪存的垃圾回收机制。其中,第一预设值可以为预先设置的空白块阈值。
在一种可能的实现方式中,在将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存之后,该方法还包括:当第二类闪存的逻辑块对应的物理块的个数大于第二预设值时,触发第二类闪存的垃圾回收机制。
图3示出本发明实施例提供的固态硬盘闪存的垃圾回收方法中垃圾回收机制的一示例性的实现流程图。参照图3:
在步骤S301中,将闪存中物理块的个数最多的逻辑块确定为待回收逻辑块;
在步骤S302中,选择新的空白物理块;
在步骤S303中,顺序读取待回收逻辑块对应的各个物理块,并将各个物理块对应的物理页中最新更新的有效数据写入新的空白物理块对应的物理页中;
在步骤S304中,擦除各个物理块。
需要说明的是,本示例中的闪存可以为第一类闪存,也可以为第二类闪存。在本示例中,垃圾回收机制包括:查找闪存中物理块的个数最多的逻辑块,并将该物理块的个数最多的逻辑块确定为待回收逻辑块;选择新的空白物理块;顺序读取该待回收逻辑块对应的各个物理块,并将各个物理块对应的物理页中最新更新的有效数据写入新的空白物理块对应的物理页中;擦除该待回收逻辑块对应的各个物理块,使该待回收逻辑块对应于空白物理块。
应理解,在本发明实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本发明实施例通过将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存,为第一类闪存和第二类闪存设置不同的垃圾回收机制,在接收到向固态硬盘写入新数据的请求信息时,检测第一类闪存是否处于垃圾回收状态,若否,则在第一类闪存上写入新数据,若是,则在第二类闪存上写入新数据,从而可以估量垃圾回收产生的开销,并在某一类闪存处于垃圾回收状态时,仍能进行新数据的写操作和数据的读取操作。
实施例2
图4示出本发明另一实施例提供的固态硬盘闪存的垃圾回收装置的结构框图。该装置可以为固态硬盘,也可以为内置于固态硬盘中的装置,或者可以为其他固态硬盘闪存的垃圾回收装置,在此不作限定。该装置可以用于运行图2所示的固态硬盘闪存的垃圾回收方法。为了便于说明,仅示出了与本发明实施例相关的部分。
如图4所示,该装置包括:
闪存分类模块41,用于将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存;
检测模块42,用于在接收到向所述固态硬盘写入新数据的请求信息时,检测所述第一类闪存是否处于垃圾回收状态;
第一新数据写入模块43,用于若所述第一类闪存不处于垃圾回收状态,则在所述第一类闪存上写入所述新数据;
第二新数据写入模块44,若所述第一类闪存处于垃圾回收状态,则在所述第二类闪存上写入所述新数据。
在一种可能的实现方式中,所述装置还包括:
第一触发模块45,用于当所述第一类闪存中空白物理块的个数小于第一预设值时,触发所述第一类闪存的垃圾回收机制。
在一种可能的实现方式中,所述装置还包括:
第二触发模块46,用于当所述第二类闪存的逻辑块对应的物理块的个数大于第二预设值时,触发所述第二类闪存的垃圾回收机制。
在一种可能的实现方式中,所述闪存分类模块41具体用于:
将固态硬盘控制器控制的每个闪存通道对应的n个闪存中的个闪存作为第一类闪存,并将其余的个闪存作为第二类闪存,其中,[]表示取整函数。
在一种可能的实现方式中,所述垃圾回收机制用于:
将所述闪存中物理块的个数最多的逻辑块确定为待回收逻辑块;
选择新的空白物理块;
顺序读取所述待回收逻辑块对应的各个物理块,并将所述各个物理块对应的物理页中最新更新的数据写入所述新的空白物理块对应的物理页中;
擦除所述各个物理块。
本发明实施例通过将固态硬盘控制器控制的每个闪存通道对应的闪存划分为第一类闪存和第二类闪存,为第一类闪存和第二类闪存设置不同的垃圾回收机制,在接收到向固态硬盘写入新数据的请求信息时,检测第一类闪存是否处于垃圾回收状态,若否,则在第一类闪存上写入新数据,若是,则在第二类闪存上写入新数据,从而可以估量垃圾回收产生的开销,并在某一类闪存处于垃圾回收状态时,仍能进行新数据的写操作和数据的读取操作。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭示的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。