买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种融合多种机器学习算法的固态硬盘热数据识别方法_杭州电子科技大学_201710022404.4 

申请/专利权人:杭州电子科技大学

申请日:2017-01-12

公开(公告)日:2020-03-20

公开(公告)号:CN106874213B

主分类号:G06F12/02(20060101)

分类号:G06F12/02(20060101);G06F3/06(20060101);G06K9/62(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.03.20#授权;2017.07.14#实质审查的生效;2017.06.20#公开

摘要:本发明公开了一种融合多种机器学习算法的固态硬盘热数据识别方法。本发明首先根据请求的大小采用K‑means均值聚类算法对请求进行聚类,判断该请求是冷数据还是热数据;然后,再根据请求的逻辑页号采用K近邻分类算法对该请求进行分类;最后,如果两种方法的分类结果不一致,根据逻辑页号采用最近邻原则对判定结果进行修正。与传统的冷热数据识别方法相比,采用本发明方法既可以保证较低的内存开销,又可以提高热数据识别的准确性,适用于集成到现有的固态硬盘系统中,提高系统的整体性能。

主权项:1.一种融合多种机器学习算法的固态硬盘热数据识别方法,其特征在于包括以下步骤:步骤1、使用K-means聚类根据当前负载大小进行分类;利用K-means聚类算法根据当前待分类的请求的负载大小对数据进行分类,分为C1和C2两类,若当前待分类的请求负载大小属于C1,则判定当前待分类的请求为热数据;反之为冷数据;步骤2、使用K近邻分类算法根据当前待分类的请求的逻辑地址进行分类;由K-means聚类方法得到两个已知类别属性的两类样本C1和C2,然后根据K近邻分类算法,从C1和C2中取K个与当前待分类的请求的逻辑页号LPN最接近的请求,然后根据K个请求的LPN中一半以上LPN所属的类别来判定当前待分类的请求的LPN所属的类别;如果K个LPN中一半以上属于C1,则当前待分类的请求的LPN属于C1为热数据;否则,属于C2为冷数据;步骤3、对比步骤1和步骤2的两种分类方式对当前待分类的请求的冷热性的分类结果;如果K-means聚类和K近邻分类两种方式对当前待分类的请求的类别的分类结果一致,则识别过程结束;如果不一致,则执行步骤4;步骤4、采用最近邻原则对分类结果进行修正;从K个最近邻的LPN中找到与当前待分类的请求的LPN的距离dist最小的LPN,以该LPN所属的类别来作为当前待分类的请求的类别;步骤1具体实现如下:使用K-means聚类根据当前负载大小进行分类;当请求R1w,42,7到来时,K-means根据负载大小进行冷热数据识别,R1的请求大小为7,离C2的聚类中心近,由K-means聚类算法判别为C2类,K-means算法的具体流程如下:步骤1.1:初始化2个聚类中心m1,m2;步骤1.2:对每个请求R,根据请求大小找到离它最近的聚类中心,将其分配到该类中;步骤1.3:重新计算C1和C2的聚类中心,i=1,2;步骤1.4:计算聚类误差平方和准则函数,步骤1.5:直到f值收敛,则输出C1、C2和m1、m2,算法结束;否则,重复步骤1.2和步骤1.3,直到f收敛;步骤2具体实现如下:使用K近邻分类对当前负载逻辑地址进行分类,根据r1的LPN采用K近邻分类算法从C1和C2中找到的5个最近邻LPN为:41、41、38、35、53,因为5个最近邻有3个为C1类,判定R1为C1类,K近邻分类算法的具体流程如下:步骤2.1:初始化K值;步骤2.2:计算当前待分类的请求的LPN与C1、C2中每个样本的LPN之间的距离dist;样本间的“近邻”使用欧式距离测量,设两个样本的逻辑地址LPN分别为x和x’,则x与x’之间的欧式距离定义为:distx,x'=|x-x'|;步骤2.3:重复步骤2.2直到计算完当前待分类的请求的LPN与所有样本的LPN间的距离dist;步骤2.4:对所有的dist进行升序排列,选出前K个最近邻的样本;步骤2.5:统计K个最近邻样本中每个类别出现的次数;步骤2.6:选择出现频率最大的类别作为当前待分类的请求的类别。

全文数据:一种融合多种机器学习算法的固态硬盘热数据识别方法技术领域[0001]本发明属于固态硬盘数据存储技术领域,尤其涉及一种融合多种机器学习算法的固态硬盘热数据识别方法。背景技术[0002]近年来,随着固态硬盘SSDSolidStateDisk,SSD设计技术的不断进步,相比传统的机械硬盘,SSD显示出具有读写速度快、功耗低、体积小、防震抗摔、便于携带等方面的优势,它已经在许多领域开始替代传统机械硬盘。[0003]闪存具有三大特性:1按页page、块block、平面plane的结构进行组织;提供读、写和擦除3种操作;页是读写的最小单位;块是擦除的最小单位。2闪存擦除后只能写一次,即所谓的写前擦除,这造成闪存不能原地更新,否则会带来巨大的开销。3闪存每个存储单元的编程擦除PE次数有限,超过擦除次数后该存储单元存储数据不再可靠。隐藏闪存上述特性,使得这些不方便的特性对用户而言透明,在SSD的设计中,一般要提供一个中间软件转换层实现对闪存的管理,称为闪存转换层FTLFlashTranslationLayer〇[0004]FTL—般由地址映射、垃圾回收和磨损均衡三个模块组成。地址映射负责将来自文件系统的逻辑地址转换为闪存中的物理地址;垃圾回收负责将回收块中的有效数据复制到新的物理块中,将回收块擦除后重新利用;磨损均衡负责保证每个块的磨损速率尽量一致,防止部分块因磨损过快而提前损坏。[0005]为实现高效的垃圾回收,避免在垃圾回收过程中复制过多的有效数据,FTL需要有效地把频繁更新的数据(即热数据和非频繁更新的数据(即冷数据分开,即热数据识别。在闪存的数据管理中,一方面,热数据识别技术可以将识别出来的热数据聚集到同一个块中来提高垃圾回收效率,减少垃圾回收的开销;另一方面,热数据识别技术可以将热数据分配到擦除次数较少的块中,防止某些块因为频繁擦除而磨损过快,改善闪存的磨损均衡。因此,热数据识别对提高SSD的性能非常关键。[0006]然而,目前现存的SSD热数据识别方法存在下面两个方面的问题:[0007]1内存开销大。目前大部分的热数据识别机制均是采用识别NAND闪存中热数据页的思想,这些机制的核心原理就是给每个页增添一个页访问计数器,在一定时间段内记录与NAND闪存页相对应的逻辑页地址的读写操作次数。如果读写操作次数大于设定的阈值,则该页被判定为热页,否则,则判定为冷页。为每个页设置了一个计数器,这样方式需要消耗大量的内存空间,对内存空间有限的固态硬盘来说,这种方式显然是不太适用的。[0008]2准确度低。常用的固态硬盘的冷热数据识别机制包括基于请求大小、访问模式、最近最少使用、布农滤波等方法。这些方法考虑因素比较单一,没能综合考虑负载的局部性特征,热数据识别的准确度不高。此外,布农滤波方法还存在假阳性问题,即将不属于不在集合内的数据错误判定为在集合内。发明内容[0009]本发明公开了一种融合多种机器学习算法的固态硬盘热数据识别方法,以克服现有方法的上述缺陷。该方法能在较小的内存开销前提下,提高冷热数据识别率。[0010]本发明解决其技术问题所采用的技术方案包括以下步骤:[0011]步骤1、使用K-means聚类Κ=2,即2均值聚类根据当前负载大小进行分类;利用K-means聚类算法根据当前请求的负载大小对数据进行分类,分为Cl小请求类和C2大请求类两类,若当前请求大小属于C1,则判定当前请求为热数据;反之为冷数据。[0012]步骤2、使用K近邻分类算法根据当前请求的逻辑地址进行分类。[0013]由K-means聚类方法得到两个已知类别属性的两类样本Cl和C2,然后根据K近邻分类算法,从Cl和C2中取K个与当前待分类的请求的逻辑页号LPN最接近的请求,然后根据K个请求的LPN中大多数LPN所属的类别来判定当前LPN所属的类别。如果K个LPN中大多数属于Cl,则当前LPN属于Cl热数据);否则,属于C2冷数据)。[0014]步骤3、对比步骤1和步骤2的两种分类方式对当前请求的冷热性的分类结果。[0015]如果K-means聚类和K近邻分类两种方式对当前请求的类别的分类结果一致,则识别过程结束;如果不一致,则执行步骤4。[0016]步骤4、采用最近邻原则对分类结果进行修正。[0017]从K个最近邻的LPN中找到与当前LPN的距离diSt最小的LPN,以该LPN所属的类别来作为当前请求的类别。[0018]本发明的有益效果在于:[0019]本发明提出的融合多种机器学习算法的热数据识别方法,仅需保存有限的数据信息,内存开销低,非常有利于实际的运用。同时,与现有热数据识别方法比较,还能提高热数据识别准确率,而且能够适应不同的负载。附图说明[0020]图1:融合多种机器学习算法的热数据识别方法示意图。[0021]图2:根据请求大小采用2均值聚类算法进行冷热数据识别示意图。[0022]图3:根据请求的逻辑地址采用K近邻分类算法进行冷热数据识别示意图。具体实施方式[0023]下面结合附图通过具体实例对本发明作进一步的详细说明。以请求序列的冷热识别为例,示例详细描述了本发明方法识别热数据的流程。示例中,为了方便阐述作如下设置:[0024]固态硬盘转换层FTL接收到的请求R格式为type,LPN,SiZe,设K近邻分类方法中K的值取5,且已经访问过的10个请求已经被分为热数据C1和冷数据:2两类:C1:{w,12,I,(w,35,4,(w,41,2,(w,41,5,(r,12,4},基于请求大小的聚类中心为3.2;C2:{W,20,7,,38,9,(《,14,12,,53,8,,30,10},聚类中心为9.2。即将访问的请求顺序为:rlw,42,7,r2w,24,3,r3w,41,7,r4r,29,ll。[0025]实施例I:[0026]当请求rlr,42,7到来时,操作过程如图1所示:[0027]步骤1.使用K-means聚类K=2,S卩2均值聚类根据当前负载大小进行分类。K-means根据负载大小进行冷热数据识别,示意图如图2所示,rl的请求大小为7,离:2的聚类中心近,由K-means聚类算法判别为C2类。K-means算法的具体流程如下:[0028]步骤1.1:初始化2个聚类中心mi,ni2;[0029]步骤1.2:对每个请求Γι,根据请求大小找到离它最近的聚类中心,将其分配到该类中;[0030]步骤1.3:重新计算和的聚类中心,[0031]步骤1.4:计算聚类误差平方和准则函数[0032]步骤1.5:直到f值收敛,则输出C1JdPmn,算法结束;否则,重复步骤1.2和步骤1.3,直到f收敛。[0033]步骤2.使用K近邻分类对当前负载逻辑地址进行分类,如图3所示。根据rl的LPN采用K近邻分类算法从CjPC2中找到的5个最近邻LPN为:41、41、38、35、53,因为5个最近邻有3个为类,判定RlSC1类。K近邻分类算法的具体流程如下:[0034]步骤2.1:初始化K值;[0035]步骤2.2:计算当前LPN与Cl、C2中每个样本的LPN之间的距离dist。样本间的“近邻”使用欧式距离测量,设两个样本的逻辑地址LPN分别为X和X’,则X与X’之间的欧式距离定义为:[0036]步骤2.3:重复步骤2.2直到计算完当前LPN与所有样本间的距离dist;[0037]步骤2.4:对所有的dist进行升序排列,选出前K个最近邻的样本;[0038]步骤2.5:统计K个最近邻样本中每个类别出现的次数;[0039]步骤2.6:选择出现频率最大的类别作为当前请求的类别。[0040]步骤3.对比两种分类方式对当前请求的冷热性的判定结果。有上述判定结果可以发现,两种方式的判定结果产生了矛盾,因此,我们需要对判定结果进行修正,执行步骤4。[0041]步骤4.采用最近邻原则对分类结果进行修正。根据最近邻原则,选取最近邻LPN=41做参考,因为LPN=41属于类,因此,最终判定Rl为类,并更新Cl类的LPN为{12,35,41,41,12,42},聚类中心更新为3.83。[0042]实施例2:[0043]当请求R2w,24,3到来时,根据图1中步骤I,R2的请求大小为3,离心的聚类中心近,由K-means聚类算法判别为心类;根据图1中步骤2,对请求R2的LPN采用K近邻分类算法从CjPC2中找到的5个最近邻LPN为:20、30、14、35、12,因为5个最近邻中有3个是属于C2类,判定R2为C2类。由图1的步骤3可知,此时判定结果也产生了矛盾。因此,执行步骤4,选取最近邻LPN=20做参考,因为LPN=20属于:2类,因此,最终判定R2为类,并更新类实体,为了简便,后面我们仅表示类中的LPN的值,更新为{20,38,14,53,30},聚类中心为8.16。[0044]实施例3:[0045]当请求R3w,41,7到来时,根据图1中步骤I,R3的请求大小为7,离:2的聚类中心近,由K-means判定为类根据图1中步骤2,对请求R3的LPN采用K近邻分类算法从CjPC2中找到的5个最近邻LPN为:41、41、42、38、35,因为5个最近邻中有4个是属于类,判定1?3为类;根据图1中步骤3,此时判定结果也产生了矛盾。因此,执行步骤4,我们选取最近邻LPN=41做参考,因为LPN=41属于类,因此,最终判定R3为类,更新C1类的LPN为{12,35,41,41,41,12,42,24},聚类中心为4.12。[0046]实施例4:[0047]当请求R4r,29,11到来时,根据图1中步骤I,R4的请求大小为11,离:2的聚类中心近,由K-means聚类算法判别为:2类;根据图1中步骤2,对请求R4的LPN采用K近邻分类算法从CjPC2中找到的5个最近邻LPN为:30、24、35、20、38,因为5个最近邻中有3个是属于C2类,判定R4SC2类。根据图1中步骤3,两种方法判定结果一致,R4确实属于:2类,更新C2类的LPN为{20,38,14,53,30,29},聚类中心为8·57。

权利要求:1.一种融合多种机器学习算法的固态硬盘热数据识别方法,其特征在于包括以下步骤:步骤1、使用κ-means聚类根据当前负载大小进行分类;利用K-means聚类算法根据当前请求的负载大小对数据进行分类,分为Cl和C2两类,若当前请求大小属于Cl,则判定当前请求为热数据;反之为冷数据;步骤2、使用K近邻分类算法根据当前请求的逻辑地址进行分类;由K-means聚类方法得到两个已知类别属性的两类样本Cl和C2,然后根据K近邻分类算法,从Cl和C2中取K个与当前待分类的请求的逻辑页号LPN最接近的请求,然后根据K个请求的LPN中大多数LPN所属的类别来判定当前LPN所属的类别;如果K个LPN中大多数属于Cl,则当前LPN属于Cl为热数据;否则,属于C2为冷数据;步骤3、对比步骤1和步骤2的两种分类方式对当前请求的冷热性的分类结果;如果K-means聚类和K近邻分类两种方式对当前请求的类别的分类结果一致,则识别过程结束;如果不一致,则执行步骤4;步骤4、采用最近邻原则对分类结果进行修正;从K个最近邻的LPN中找到与当前LPN的距离dist最小的LPN,以该LPN所属的类别来作为当前请求的类别。

百度查询: 杭州电子科技大学 一种融合多种机器学习算法的固态硬盘热数据识别方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。